在新/编辑视图之间共享表单时的复选框初始状态

时间:2017-02-24 21:14:17

标签: ruby-on-rails

我正在尝试在编辑和新视图之间重复使用表单中的代码。在新视图中,我希望默认情况下选中复选框。在编辑视图中,我希望它反映对象的当前状态。分享此信息的最佳方式是什么?下面的代码是我想要的" new"但是对于编辑,我不希望硬编码为" 选中:true"

<div class="row">
    <%= form_for @producer_type do |f| %>
        <%= f.label :name %>
        <%= f.text_field :name, class: 'form-control' %>

        <%= f.label :enabled %>
        <%= f.check_box :enabled, {checked: true} %>
    <% end %>
</div>

2 个答案:

答案 0 :(得分:1)

true替换为current_page?(action: 'edit')

有关current_page方法的更多信息,请参阅ActionView::Helpers::UrlHelper#current_page?

我认为你不需要花括号,因为哈希位于参数列表的末尾。

答案 1 :(得分:1)

您需要将对象从控制器传递到表单。

int

并在表单中使用它,如果启用为真,Rails会自动检查

int