如何为多对多模型构建Rails?

时间:2015-08-03 21:38:45

标签: ruby-on-rails form-for

我有一个用户,一个Wiki和一个Collaborator模型:

class User < ActiveRecord::Base
  has_many :wikis
  has_many :collaborators
end

class Wiki < ActiveRecord::Base
  has_many :wikis
  has_many :collaborators
end

class Collaborator < ActiveRecord::Base
  belongs_to :user
  belongs_to :wiki
end

当我编辑Wiki的合作者时,我希望表单看起来像这样: enter image description here

我的问题是我无法弄清楚如何构建表单。我认为以下内容可行,但<% form_for :collaborator do |f|%>不会导致生成的页面中包含任何内容。

<% form_for :collaborator do |f|%>
    <% possible_collaborators.each do |user| %>
        <%= check_box_tag 'wiki[collaborator_ids][]', user.id, wiki.collaborators.include?(user) %>
        <%= user.name %> 
        <br />
    <% end %>
    <%= f.submit %>
  <% end %>

1 个答案:

答案 0 :(得分:2)

由于你没有发布你的控制器代码,我无法确定你想要完成什么,但我认为你错过了{{1}}(docs,{{3 }})。

此外,我只建议您使用tutorial with controller codesimple_forms,因为这些宝石在复杂表单方面做得很好并且可以帮助您完成基本用例。