首页 > rails 4 多对多的控制器和视图怎么实现?

rails 4 多对多的控制器和视图怎么实现?

Model:

app/models/group.rb

class Group < ActiveRecord::Base
  has_many :group_members
  has_many :members, :through => :group_members
end

app/models/member.rb

class Member < ActiveRecord::Base
  has_many :group_members
  has_many :groups, :through => :group_members
end

app/models/group_members.rb

class GroupMember < ActiveRecord::Base
  belongs_to :group
  belongs_to :member
end

View:

app/views/groups/new.html.erb

<div class="control-group">
    <%= f.label :name, :class => "control-label" %>
    <div class="controls">
        <%= f.text_field :name, :class => "input-xxlarge" %>
    </div>
</div>



<%= f.label :member, :class => "control-label" %>
<% Member.all.each do |member| %> <%= check_box_tag 'group[member_ids][]', member.id, @group.members.include?(member) %> <%= member.name %> <% end %>

这个好多地方都有解答, 如果英文好的话,可以看看这一个Railscasts:

http://railscasts.com/episodes/196-nested-model-form-revised

Rails 4.0依然支持Nested Attributes, 具体的文档可以看这里。

http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html

【热门文章】
【热门文章】