如何将 selected_tab 传递给控制器操作?
How to pass a selected_tab to a controller action?
我有一个主选项卡 'Category'。此选项卡还有两个选项卡 'question' 和 'answer'。我创建了 CategoryController
,其中定义了两个名称为 'question' 和 'answer' 的操作。我有一个私有方法 category_type
,它应该根据选择的选项卡('question' 或 'answer')采用 category_type。此方法将在控制器的操作中调用。我在视图中创建了这些选项卡,还添加了路由。如何将视图中选择的选项卡传递给此方法?
我已经为这些选项卡创建了部分内容并将其呈现在主页面上。
_tabs.html.haml
#secondary-slider.pills-容器
%跨度
= link_to 'Questions', question_category_path, class: @selected_tab[:问题]
%跨度
= link_to 'Answers', answer_category_path, class: @selected_tab[:answer]
控制器的操作:
定义问题
@selected_tab = { category_type => :selected }
结尾
别名:问题:答案
私人的
定义 category_type
@category_type = :问题
结尾
我不想像上面给出的那样将 category_type 作为 :question
或 :answer
传递,而是想从视图中传递参数,即如果选择了 question
选项卡,@category_type
应与 question
一起传递,否则如果选择了 answer
选项卡,则应在 category_type
中传递。
如何实现?我想传递 'params()' 但无法弄清楚括号中应该传递什么。
提前致谢。
您可以通过 question_category_path
从视图中传递类别类型,如下所示,
question_category_path(category: 'question')
answer_category_path
也是如此
并访问选择的类型,作为params[:category]
我有一个主选项卡 'Category'。此选项卡还有两个选项卡 'question' 和 'answer'。我创建了 CategoryController
,其中定义了两个名称为 'question' 和 'answer' 的操作。我有一个私有方法 category_type
,它应该根据选择的选项卡('question' 或 'answer')采用 category_type。此方法将在控制器的操作中调用。我在视图中创建了这些选项卡,还添加了路由。如何将视图中选择的选项卡传递给此方法?
我已经为这些选项卡创建了部分内容并将其呈现在主页面上。
_tabs.html.haml
#secondary-slider.pills-容器 %跨度 = link_to 'Questions', question_category_path, class: @selected_tab[:问题] %跨度 = link_to 'Answers', answer_category_path, class: @selected_tab[:answer]
控制器的操作:
定义问题 @selected_tab = { category_type => :selected } 结尾 别名:问题:答案 私人的 定义 category_type @category_type = :问题 结尾
我不想像上面给出的那样将 category_type 作为 :question
或 :answer
传递,而是想从视图中传递参数,即如果选择了 question
选项卡,@category_type
应与 question
一起传递,否则如果选择了 answer
选项卡,则应在 category_type
中传递。
如何实现?我想传递 'params()' 但无法弄清楚括号中应该传递什么。
提前致谢。
您可以通过 question_category_path
从视图中传递类别类型,如下所示,
question_category_path(category: 'question')
answer_category_path
并访问选择的类型,作为params[:category]