Joh*_*ohn 20 activerecord associations arel ruby-on-rails-3
关联方法,例如那些定义has_many和belongs_to利用的方法ActiveRecord::Relation?
如果是这样,是否可以获取ActiveRecord::Relation正在使用的对象.
我们都知道,当使用查询接口创建查询时,Rails 3 在后台大量使用ActiveRecord::Relation对象和Arel::Relation对象.每当我们使用,等查询界面的方法,一个是返回的对象.但是,在调用模型的关联方法时似乎不是这种情况.而是立即执行查询,并返回关联模型的实例或实例数组.selectjoinsActiveRecord::Relation
考虑以下模型:
post.rb
class Post < ActiveRecord::Base
belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)
user.rb
class user < ActiveRecord::Base
has_many :posts
end
Run Code Online (Sandbox Code Playgroud)
例:
u = User.first
u.posts
Run Code Online (Sandbox Code Playgroud)
调用u.posts返回一组帖子,而不是一个实例ActiveRecord::Relation.我不知道是否有可能得到的ActiveRecord::Relation是正在使用的联想,如果它被用在所有的,也许使用Arel::Table?
我想要的理由ActiveRecord::Relation应该是显而易见的:这是因为我想链接现有的关联并操纵查询以适应不同的目的.
Mat*_*chu 34
几分钟我使用了where(nil)黑客,然后我有一个脑波并尝试了一些随机的东西:
User.first.posts.scoped
Run Code Online (Sandbox Code Playgroud)
而已!:d
是的,Rails + Arel的记录很差.期待它成熟到我可以实际查找并获得实际答案的程度.
| 归档时间: |
|
| 查看次数: |
15868 次 |
| 最近记录: |