2

ビューに「旅行」ごとにすべての「足」を表示しようとしています。

理想的には、次のようになります。

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

モデルは多対多です。Legs、Trips、Legs_trips の 3 つのテーブルがあります。モデルは次のようになります。

Trip.rb

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

レッグ.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

私のビューを構築する方法についての提案は素晴らしいでしょう! 私は何年もの間いじくり回してきましたが、オンラインで何かに近づいたり見つけたりすることができないようです.

前もって感謝します!

ジェームズ

4

2 に答える 2

3

試す

 <% @trips.each do |trip| %>
   <ul>
     <li>
       <%= trip.name %>
         <% trip.legs.each do |leg| %>
            <li>
              <%= leg.name %>
            </li>
         <% end %>
     </li>
   </ul>
 <% end %>    
于 2012-07-05T11:38:48.213 に答える
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>
于 2012-07-05T11:34:01.073 に答える