gpt4 book ai didi

ruby-on-rails - 通过 Rails ActiveRecord Association 调用类方法

转载 作者:数据小太阳 更新时间:2023-10-29 07:47:38 25 4
gpt4 key购买 nike

我有两个类:

class Post < ActiveRecord::Base
has_many :comments
end

class Comment < ActiveRecord::Base
belongs_to :post

# Class method
# does some analysis on all the comments of a given post
def self.do_sentiment_analysis
post_id = self.new.post_id # Is there a better way to get post_id?

# real code that does something follows

end

end


# Class method is called on a post object like this:
Post.find(1).comments.do_sentiment_analysis

问题是是否有更好的方法来知道调用类方法的关联对象(post)的id。一种方法(上面使用的)是:post_id = self.new.post_id。我敢打赌有一种更简洁的方法,我不必为了获取 post_id 而创建对象。

最佳答案

直接回答你的问题,

Comment.scope_attributes

将返回 Comment 的当前范围将设置的那些属性的散列。您可以像这样测试关联对此的影响

虽然我不确定我是否会使用它 - 拥有一个只能在特定形式的范围内调用的类方法似乎有点奇怪。

关于ruby-on-rails - 通过 Rails ActiveRecord Association 调用类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34623164/

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