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
這似乎是期待協會嵌套產生額外層Event::ManualResult::EventReason
和Event::Result::EventReason
謝謝了!男人,我從字面上做同樣的事情!蜂巢五。什麼是心靈扭曲 – TheLegend