HASD_AND_CONITY_TON和JONTABLE表及复选框集合?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (41)

我正在尝试创建一个管理页面,其中包含另一个模型的嵌套表单。

我有一个Playbook模型:

playbook.rb

  has_and_belongs_to_many :groups
  accepts_nested_attributes_for :groups

我的表单视图

_form.html.haml

<%= form_with(model: playbook, local: true) do |form| %>

   ...

  <%= collection_check_boxes(:group, :group_ids, Group.all, :id, :name) %>

  <div class="actions">
    <%= form.submit %>
  </div>

为了解释它,Playbooks可以有许多组,这是另一个模型,我想在使用我认为是嵌套表单保存playbook时自动保存到groups_playbooks连接表。我只是不知道如何使用像我的视图一样的复选框来执行嵌套表单。

这是模式的一部分,以帮助提供更好的图片:

  create_table "groups", force: :cascade do |t|
    t.string "name"
    t.string "variables"
    t.bigint "server_id"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.index ["server_id"], name: "index_groups_on_server_id"
  end

  create_table "groups_playbooks", id: false, force: :cascade do |t|
    t.bigint "group_id", null: false
    t.bigint "playbook_id", null: false
  end

  create_table "groups_servers", id: false, force: :cascade do |t|
    t.bigint "group_id", null: false
    t.bigint "server_id", null: false
  end

  create_table "playbooks", force: :cascade do |t|
    t.string "name"
    t.string "play"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "description"
  end

  create_table "playbooks_servers", id: false, force: :cascade do |t|
    t.bigint "playbook_id", null: false
    t.bigint "server_id", null: false
  end

  create_table "servers", force: :cascade do |t|
    t.string "name"
    t.string "ip"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.bigint "group_id"
    t.index ["group_id"], name: "index_servers_on_group_id"
  end
提问于
用户回答回答于

你应该用playbook而不是groups

<%= collection_check_boxes(:playbook, :group_ids, Group.all, :id, :name) %>
<%= form.collection_check_boxes(:group_ids, Group.all, :id, :name) %>

扫码关注云+社区

领取腾讯云代金券