如何使用if,否则在form_for helper中提取特定字段

时间:2013-05-06 09:58:17

标签: ruby-on-rails form-for

我的编辑视图中有以下代码:

<%= form_for @content do |f|%>
  <% if f.text_field :home %>
    <%= f.label :Home %>
    <%= f.text_field :home %>
  <% elsif f.text_field :aboutus %>
  <%= f.label :Abouts %>
  <%= f.text_field :aboutus %>
 <% end %>
<%= f.submit%>
   

@content包含以下信息:

id: "1", home: "staticcontent", aboutus: "staticcontent"

所以我希望如果有人想要编辑主页,他只能看到主页提交表单,如果他选择aboutus,他可以看到编辑表单页面只关于us.suggest我有什么正确的使用方式,如果,否则在这方框?

1 个答案:

答案 0 :(得分:0)

您可以传递一个URL参数并使用它。例如:

# in some view
<%= link_to "Edit Homepage", edit_content_path(page: "home")
# this will link to /contents/:id/edit?page=home

然后以你的形式:

<%= form_for @content do |f|%>
  <% if params[:page] == "home" %>
    <%= f.label :home %>
    <%= f.text_field :home %>
  <% else %>
    <%= f.label :about_us %>
    <%= f.text_field :about_us %>
 <% end %>
<%= f.submit%>

注意我标记了标签,并将aboutus更改为about_us,以便正确显示标签。