我正在尝试将我的网站调整得更快,但是在调整关联时遇到了问题。
class Post < ActiveRecord::Base
has_many :photos, as: :annotatable
end
class Photo < ActiveRecord::Base
belongs_to :annotatable, polymorphic:true
end
我只想热切地为每个帖子加载第一张照片,但由于它是多态的而导致语法错误。
以下是我的尝试:
has_many :primary_photo, as: :annotable, -> { order('photos.sort_order ASC').limit(1) }, class_name: 'Photo'
我在尝试上述操作时遇到的错误是:
syntax error, unexpected ',', expecting => ...r('sort_order ASC').limit(1) }, class_name: 'Photo' ... ^
然后:Post.includes(:primary_photo)
关于如何使这项工作的任何想法?
答案 0 :(得分:1)
方法签名期望选项在范围之后。试试这样:
has_many :primary_photo, -> { order('photos.sort_order ASC').limit(1) }, class_name: 'Photo', as: :annotable