我有一个方便的范围是includes
相关的模型,以加快表的渲染等:使用Rails的选择中选择()中加入(未覆盖)属性?
class Post < ApplicationRecord
...
scope :includes_for_post_row, -> { includes(:reasons).includes(:feedbacks => [:user]) }
它工作正常。但是现在,我想select
附加属性。如果我已经知道初始属性我想,我能做到这一点(在控制台):
2.3.3 :005 > Post.select("`posts`.*, 42 AS column_forty_two").last.column_forty_two
Post Load (1.0ms) SELECT `posts`.*, 42 AS column_forty_two FROM `posts` ORDER BY `posts`.`id` DESC LIMIT 1
=> 42
这假定我知道我要选择posts.*
,然后我就钉在我的column_forty_two
列,并将其所有作品。
我想补充column_forty_two
到我的结果,而不会影响初始选择。例如,这应该工作:
p = Post.select("`posts`.*, 8 as column_eight").includes_for_post_row_with_forty_two
p.last.column_forty_two # => 42
p.last.column_eight # => 8
p.last.some_activerecord_property # => value
如应该这样:
p = Post.all.includes_for_post_row_with_forty_two.last
p.last.column_forty_two # => 42
p.last.some_activerecord_property # => value
我怎样才能select
的额外列,而不影响或.all
还是我自己改写默认选择现有列早期select
?