在呈现新记录表单之前定义复选框状态

时间:2014-03-03 12:04:19

标签: ruby-on-rails

我的Tag模型has_one :tag_option带有一些复选框。当我创建新的Tag时,它会提供一个新的html form,其中所有tag_option复选框都未选中。我想默认设置其中一些。这样做的最佳方式是什么?

控制器:

def new 
  @tag = Tag.new
end

形式:

<%= form_for(@tag) do |f| %>
  ...
  <%= f.fields_for :tag_option do |o| %>
    @tag.tag_option['status'] = true # It gives an error
    <%= o.check_box :status %>
    ....
  <% end %>
<% end %>

1 个答案:

答案 0 :(得分:1)

请试试以下内容。

def new 
  @tag = Tag.new
  @tag_option = @tag.build_tag_option({status: true})
end

FORM

<%= form_for(@tag) do |f| %>
  ...
  <%= f.fields_for :tag_option do |o| %>
    <%= o.check_box :status %>
    ....
  <% end %>
<% end %>