1
異なる結果(デフォルトと手動)を保存したいので、それぞれの結果に理由があります。これは多形的な関連のためには良い場所だと思っていました。モデルは名前空間を持ちますが、これは予期していたよりもトリッキーなものになりがちです。次the guideRails名前空間との多相関連
アプリ/モデル/イベント/ reason.rb
# id :integer not null, primary key
# reasons :string
# reasonable_id :integer
# reasonable_type :string
# created_at :datetime not null
# updated_at :datetime not null
#
class Event::Reason < ActiveRecord::Base
belongs_to :reasonable, polymorphic: true
end
アプリ/モデル/イベント/ result.rb
class Event::Result < ActiveRecord::Base
belongs_to :event
has_one :event_reason, as: :reasonable
end
アプリ/モデル/イベント/ manual_result .rb
class Event::ManualResult < ActiveRecord::Base
belongs_to :event
has_one :event_reason, as: :reasonable
end
しかし、私のような何かをしようとした場合:
Event::ManualResult.last.event_reason
Event::ManualResult Load (5.1ms) SELECT "event_manual_results".* FROM "event_manual_results" ORDER BY "event_manual_results"."id" DESC LIMIT 1
NameError: uninitialized constant Event::ManualResult::EventReason
または
Event::Result.last.event_reason
Event::Result Load (0.4ms) SELECT "event_results".* FROM "event_results" ORDER BY "event_results"."id" DESC LIMIT 1
NameError: uninitialized constant Event::Result::EventReason
をそれのadditonal層Event::ManualResult::EventReason
内にネストされるように、それは関連付けを期待していると思われるとEvent::Result::EventReason
ありがとうございました!私は文字通り同じことをしました!ハイブ5。どのような心ひねり – TheLegend