class RelatedList < ActiveRecord::Base
extend Enumerize
enumerize :list_type, in: %w(groups projects)
belongs_to :content
has_many :contents, :order => :position
end
在我的Rails应用程序中,我有这个模型,在控制台中尝试创建记录时会出现警告。
DEPRECATION WARNING:您的RelatedList.has_many:contents声明中以下选项已过时::order。请改用范围块。例如,以下内容:has_many:spam_comments,条件:{spam:true},class_name:'Comment'应重写为以下内容:has_many:spam_comments, -> {where spam: true},class_name:'Comment' . (来自 /Users/shivam/Code/auroville/avorg/app/models/related_list.rb:7 的调用)
看起来Rails 4在模型中有新的:order语法,但我似乎找不到Rails指南中的文档。
order
和include
,该怎么办?这段代码:{ order(:position), include(:track) }
在逗号处会报错。 - kakubei-> { order(name: :asc) }
。 - wspruijtlist.contents.order('position desc')
,这可能更有效,并且不会像模型侵入性那样(在投票答案中,列表知道内容字段,而在此处控制器知道它)。 - Dirty Henry