将变量传递给视图/表单以进行更改

时间:2014-10-22 14:51:07

标签: ruby-on-rails

如何根据点击的链接更改表单?

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

为清楚起见,大部分表格都是相同的。只是一些隐藏的领域是不同的。

2 个答案:

答案 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' %>