gpt4 book ai didi

ruby-on-rails - 使用 'others' 方法获取关联对象时,我可以访问 named_scope 中父对象的 id 吗?

转载 作者:行者123 更新时间:2023-12-04 03:44:57 25 4
gpt4 key购买 nike

假设您有两个模型:articlescomments

class Article < ActiveRecord::Base
has_many :comments
end

你知道你可以像这样获取文章的相关评论:

article = Article.first
article.comments # => SELECT * FROM "comments" WHERE ("comments".article_id = 123)

有没有办法在命名范围内显式访问 article_id (123)?

我需要这个用于连接另一个表的复杂 named_scope。基本上 named_scope 将依赖于从关联的父对象调用才有意义(article.comments.my_named_scopenot Comments.my_named_scope) .

我不想将 id 作为 named_scope 的参数传递。因此,不是将 article_id 传递给带有 的命名范围... lambda { |article| ...} 并使用 "... #{article.id} ..." 访问 id,我想以某种方式访问​​此 article_id others method使用,我从 has_many 协会获得。

最佳答案

听起来您真正想要的是关联扩展: http://guides.rubyonrails.org/association_basics.html#association-extensions

特别是 proxy_owner,这将是有问题的@article

例如:

class Article < ActiveRecord::Base
has_many :posts do
def sample_extension
puts "Proxy Owner #{proxy_owner}"
end
end
end

@article.posts.sample_extension

关于ruby-on-rails - 使用 'others' 方法获取关联对象时,我可以访问 named_scope 中父对象的 id 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2180740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com