active_posts
的{{1}}实例方法不适用于我的User
模型。
我抓取user
条记录,然后根据该记录,我需要加入blogs
和posts
表格,然后按帖子过滤{{1} }属性,以便仅返回active
的有效posts
。
user
我运行以下内容:
class User < ApplicationRecord
has_many :blogs
has_many :posts, through: :blogs
def active_posts
joins(blogs: :posts).merge(Post.active).distinct
end
end
class Blog < ApplicationRecord
belongs_to :user
has_many :posts
end
class Post < ApplicationRecord
belongs_to :blog
belongs_to :user, through: :blog
scope :active, -> {where(active: true}
end
这是错误:
NoMethodError 未定义的方法&#39;加入&#39;在用户记录
答案 0 :(得分:0)
刚刚意识到我的错误。
只需在ps -ef | grep mysql
...
watrudoin 29512 29443 0 12:57 pts/4 00:00:00 mysql -u MyUserName -phunter2 -e SHOW DATABASES
方法中调用posts.active
。
active_posts
def active_posts
posts.active
end
用于集合。因此,您可以在模型中的类方法上使用joins
,而不是在实例方法中使用joins
。简单的错误。