1

has_many / belongs_to関係を持つ要素を含むデータモデルのビューを実装するRailsの方法は何ですか?

これが私がリスト形式で表示したいモデルです:ドライバー

class Driver < ActiveRecord::Base
  ...
  has_many :cars
end

各ドライバーの下にリストする必要があるモデルは次のとおりです。

車両

class Car < ActiveRecord::Base
  ...
  belongs_to :driver
end

それぞれの車のドライバーのリストを表示したいと思います。

これは2つの質問を提起します:

1。両方を1ページに最も効率的にリストするにはどうすればよいですか?私のコントローラーとビューはどのように見える必要がありますか?私が単にするなら

    @drivers = Driver.all

視界内の車にアクセスできないようです。

2。ドライバーのみをリストし、リクエストに応じてAJAXを使用して車をロードする場合、cars_controllerとdrivers_controllerを使用しますか?このシナリオのテストを書くにはどうすればよいですか?

4

2 に答える 2

1

あなたがすでに持っているものを拡張する:

//controller
  @drivers = Driver.all

  //view
  @drivers.each do |d|
   puts d.messages
   # OR
   d.messages.each do |m|
    puts m.title
   end
  end

同じことは、と逆に行うことができます@cars = Car.all

于 2012-06-22T15:24:03.823 に答える
1

1)ルートがある場合は、直接アクセスできます

ルート.rb

  resources :drivers do
    resources :cars
  end

利用可能なルートを確認するにはrake routes

次に、すべてのドライバーを初期化すると、@drivers = Driver.all各ドライバーにdriver.carsアクセスし、各車にアクセスできます。.each

したがって、ビューでは、次のようになります。空の場合は、次のように空のオブジェクトを作成でき@drivers.each do |driver|ます。driver.cars.eachdriver.cars.build

効率チェックについては、http://www.ibm.com/developerworks/web/library/wa-rails3/およびhttps://github.com/orslumen/record-cacheを確認してください。

2)特定のページで使用する場合を除き、ドライバーコントローラーを使用できます。

ページからドライバーの関係にアクセスでき、技術的にはさまざまな機能を備えたドライバーのページにいるので、それをdrivers_controllerに保持します。他のことをしていると感じたら、そのための新しいコントローラーを作成できます。

于 2012-06-22T15:33:14.603 に答える