如何根据点击的链接更改表单?
link_to "Option A", form_path
link_to "Option B", form_path
如果单击选项A或B,我希望能够更改表单。像:
if option_a
some hidden_fields
else if option_b
some other hidden_fields
end
# rest of the form here
为清楚起见,大部分表格都是相同的。只是一些隐藏的领域是不同的。
答案 0 :(得分:0)
您可以将params变量传递给form_path
方法:
link_to "Option A", form_path(option: 'a')
link_to "Option B", form_path(option: 'b')
假设{:1}}在以下路线中设置:
form_path
以上内容将显示如下网址:resources :form
在任何/form?option=a
辅助方法的任何必需参数之后传递任意哈希会将这些键值添加到查询字符串中。
现在以您的形式:
*_path
就是这样。
注意:case params[:option] when ?a
# some hidden_fields
when ?b
# some other hidden_fields
else
# no option specified
end
答案 1 :(得分:-2)
渲染部分时,可以将变量传递给它,例如:
<%= render 'form', :option => 'Option A' %>
然后在表单上,您可以访问选项变量:
<% if option == 'Option A' %>