Rails拥有并属于许多协会

时间:2015-05-14 06:28:36

标签: ruby-on-rails ruby-on-rails-4

我的问题与协会有关。原谅我,因为我正在学习这个。

我有两张桌子(父母和孩子)。我已经建立了父表被设置为has_many子节点的关联,子表有一个父节点,其中foriegn id设置为parent_id。这很好。

我的问题是,我想创建一个家庭观点,将父母和孩子一起展示并相互关联。所以它看起来像这样:

父姓

  • 子姓名
  • 子姓名

我很确定我需要创建一个族表并执行has_and_belongs_to_many关联但不知道如何将两者一起显示在上面 希望这是有道理的。

2 个答案:

答案 0 :(得分:2)

如果您只是想让父母及其子女看到您不需要创建新表,请按以下步骤操作:

在你父母控制人的指数行动中(我考虑你要向所有父母展示他们的孩子所以我使用索引动作):

def index
  @parents= Parent.all.includes(:children)
end

然后在 index.html.erb 视图中

<% @parents.each do |parent| %>
  <%= parent.name%><br/>
  <% parent.children.each do |child| %>
    <%= child.name%><br/>
  <% end %>
<% end %>

考虑到您已定义父与子模型之间的关联

答案 1 :(得分:0)

class Parent
 has_many :children
end

class Child
 belongs_to :parent
end 

在控制器中

@parent = Parent.find(params[:id]).includes(:children)

在视图中

<% @parent.children.each do |child| %>
  <%= child.name %>
<% end %>