0
我剛剛升級到Ruby 2.0,默認情況下會爲Padrino應用程序加載ActiveRecord 4。這很好,我想利用Ruby 2.0和AR 4的改進。但是,我很難重寫以前工作的一些關係。ActiveRecord 4如何向用戶:訂購和:包括
例如,這將不再有效:
has_many :dvd_credits, :order => 'position', :include => [:dvd_actor, :dvd_role]
它提供了一個過時的警告,但它顯示的例子是沒用的:has_many :spam_comments, -> { where spam: true }, class_name: 'Comment'
環顧四周,我能夠發現,這個工程由省略:include
參數:
has_many :dvd_credits, -> { order :position }
如果我添加它像這樣:
ArgumentError: Direction should be :asc or :desc
我仍然在着手處理的變更AR 4,但真的很感激一些這方面的幫助:
has_many :dvd_credits, -> { order :position, include: [:dvd_actor, :dvd_role] }
當我打電話這種關係我得到這個錯誤。
謝謝。客戶,那麼客戶是 渴望 - 那就是, 如果你有訂單belongs_to的
有沒有必要使用包括直接的關聯:
PS 我沒有在AR 4頁找到這個在需要時自動加載。
我認爲我可以放心地忽略include:
參數嗎?
但這種關係有點複雜,它是這樣的:
class Dvd < ActiveRecord::Base
has_many :dvd_credits, -> { order :position }
has_many :dvd_actors, :through => :dvd_credits
has_many :dvd_roles, :through => :dvd_credits
class DvdCredit < ActiveRecord::Base
belongs_to :dvd_actor, :inverse_of => :dvd_credits
belongs_to :dvd_role, :inverse_of => :dvd_credits
belongs_to :dvd, :inverse_of => :dvd_credits
class DvdActor < ActiveRecord::Base
has_many :dvd_credits, :inverse_of => :dvd_actors
has_many :dvds, :through => :dvd_credits
,但似乎滿足belongs_to
條件。