1
を動作しません:ポリモーフィック関連は、私はこれらのモデルクラスを持っている
class Song < ActiveRecord::Base
has_many :urls, as: :media
has_one :url, as: :media
end
class Url < ActiveRecord::Base
belongs_to :media, polymorphic: true
end
ここで奇妙なことが常にnilを返しますが、Song.first.urls
は、URLのリストを返すSong.first.url
ということです。ここで
生成されたSQLクエリです:
Song.includes(:url).first.url # => nil
Song Load (0.4ms) SELECT `songs`.* FROM `songs` LIMIT 1
Url Load (0.4ms) SELECT `urls`.* FROM `urls` WHERE `urls`.`media_type` = 'Song' AND `urls`.`media_id` IN (1)
Song.includes(:urls).first.urls # => [list of urls]
Song Load (0.7ms) SELECT `songs`.* FROM `songs` LIMIT 1
Url Load (0.5ms) SELECT `urls`.* FROM `urls` WHERE `urls`.`media_type` = 'Song' AND `urls`.`media_id` IN (1)
なぜこれが起こっている私はすべてのアイデアのRuby 1.9.2に3.2.0.rc2
レールを実行していますか?
これは興味深い:-) –
はい、確かに。私はそれがバグかどうか疑問に思います... – Oleander
'has_many'をモデルから削除するとどうなりますか?あなたが 'Song.includes(:url、:urls).first.url'をすればどうなりますか? –