2012-07-05 48 views
2

我试图在我的视图中为我的每次'行程'显示所有'腿'。Rails 3:如何在视图中显示多对多连接?

理想的情况下,他们应该是这样的:

-Trip1.name 
    - Leg1.name 
    - Leg2.name 
    - Leg3.name 
-Trip2.name 
    - Leg4.name 
    - Leg5.name 
    - Leg6.name 

型号有许多一对多。我有三张桌腿,旅行和Legs_trips。该模型是这样的:

Trip.rb

class Trip < ActiveRecord::Base 
has_and_belongs_to_many :legs 
accepts_nested_attributes_for :legs, :reject_if => :all_blank 
end 

Leg.rb

class Leg < ActiveRecord::Base 
has_and_belongs_to_many :trips 
validates_uniqueness_of :name 
accepts_nested_attributes_for :trips 
end 

没有什么,但这个控制器的时刻:

def index 
@trips = Trip.all 
@legs = Leg.all 

respond_to do |format| 
    format.html # index.html.erb 
    format.json { render json: @trips } 
end 
end 

任何如何构建我的观点的建议将非常棒!我已经修好了很多年,但似乎无法在任何地方找到任何东西或在网上找到任何东西。

在此先感谢!

詹姆斯

回答

3

尝试

<% @trips.each do |trip| %> 
    <ul> 
    <li> 
     <%= trip.name %> 
     <% trip.legs.each do |leg| %> 
      <li> 
       <%= leg.name %> 
      </li> 
     <% end %> 
    </li> 
    </ul> 
<% end %>  
+0

完美!我知道这将是非常简单的事情,但我仍然在这些事情上花费很多时间!哈哈。谢谢! – 2012-07-05 11:46:59

2

在您查看应用它们是这样的:

<ul> 
<% @trips.each do |trip| %> 
    <li> 
    <%= tri.name %> 

    <ul> 
    <% @trips.legs.each do |leg_in_trip| %> 
    <li> 
    <%= leg_in_trip.name %> 
    </li> 
    <% end %> 
    </ul> 
    </li> 
<% end %> 
</ul>