我有一系列名为@posts的帖子。帖子模型has_many:感受:通过=> :feelingships
如何获取帖子数组并将其缩小到仅具有特定感觉的帖子?
我尝试了下面的代码,但它不起作用:(
@specific_feeling_posts = @posts.feeling.where(:feeling => "happy")
模型
class Post < ActiveRecord::Base
has_many :feelingships
has_many :feelings, :through => :feelingships
belongs_to :user
end
class Feeling < ActiveRecord::Base
has_many :feelingships
has_many :posts, :through => :feelingships
end
class Feelingship < ActiveRecord::Base
belongs_to :post
belongs_to :feeling
end
答案 0 :(得分:1)
@happy_posts = Post.joins(:feelings).where("feelings.title = ?", "happy")
这应该有效。
答案 1 :(得分:0)
@specific_feelings_post=Post.join(:feelings).where("feelings.title= ?","specific_feeling")
与bricker上面写的相同。问号是避免SQL注入。 简而言之,数据库的安全性由Rails中的ActiveRecord处理。通过这样做,您将创建正确转义的SQl,并且不受SQL注入的影响。