私は今日、自己参照 has_many :through data の状況について読んでいました。なぜなら、それらを使用する Rails アプリケーションを構築しようとしているからです。この例の状況をインターネットで見つけたので、質問があります。この男のブログからこのサンプル コードを投稿させてください。
create_table :animals do |t|
t.string :species
end
create_table :hunts do |t|
t.integer :predator_id
t.integer :prey_id
t.integer :capture_percent
end
class Animal < ActiveRecord::Base
has_many :pursuits, :foreign_key => 'predator_id',
:class_name => 'Hunt',
:dependent => :destroy
has_many :preys, :through => :pursuits
has_many :escapes, :foreign_key => 'prey_id',
:class_name => 'Hunt',
:dependent => :destroy
has_many :predators, :through => :escapes
end
class Hunt < ActiveRecord::Base
belongs_to :predator, :class_name => "Animal"
belongs_to :prey, :class_name => "Animal"
end
データベースの最初の動物を一覧表示する Web ページを作成しているとします。この見出しの下には、パーセンテージのリスト (capture_percent) があります。各パーセンテージは、このページの動物が狩る動物を参照していますが、動物の名前はわかりません。パーセンテージだけです。特定のパーセンテージをクリックすると、対応する動物のページに移動します。
これはあなたの頭を包み込むのが難しい質問だと思いますが、私はそれを理解しようとしています. おそらく、CapturePercent 用に別のテーブルを作成する必要がありますか?