将嵌套表单中的标签添加到复选框,写入关联的模型

时间:2017-12-20 23:39:53

标签: ruby-on-rails nested-forms form-for

我正在尝试在与其ID相关联的复选框旁边添加用户名。我的最终目标是使用自定义属性writer,users_attributes =,将id分配给名为“admin_id”的ListsUsers表中的列。我似乎无法弄清楚如何在表单中访问用户的名称来创建标签。

仅供参考,为了本练习的目的,我避免在List.rb中使用“accepts_nested_attributes_for”

我的表格:

<%= form_for(@list) do |f| %>
  <%= f.fields_for :users do |users_fields| %>
    <%= users_fields.label :name %>
    <%= users_fields.check_box :id %>
  <% end %>
<%= f.submit %>
<% end %>

我在ListsController.rb中的强大参数

def list_params
    params.require(:list).permit(:name, :list_type, invites_attributes: [:email, :status], users_attributes: [:id, :name])
end

我在List.rb中的客户属性编写器

def users_attributes=(users_attributes)
    binding.pry
end

我能够抓住撬的属性。只需要标记框,以便用户知道他们正在检查什么。

1 个答案:

答案 0 :(得分:0)

解决了它:

<%= form_for(@list) do |f| %>
  <%= f.fields_for :users do |users_fields| %>
    <%= users_fields.object.name %>
      <%= users_fields.check_box :id, checked: true %>
  <% end %>
  <%= f.submit %>
<% end %>