Ruby on rails Rails 3:有很多:通过保存问题吗?

Ruby on rails Rails 3:有很多:通过保存问题吗?,ruby-on-rails,ruby-on-rails-3,has-many-through,Ruby On Rails,Ruby On Rails 3,Has Many Through,我希望有人能向我解释为什么我不能保存新唱片 class User < ActiveRecord::Base has_many :viewed_posts, :dependent => :destroy has_many :posts, :through => :viewed_posts def update_viewed_posts(post) if viewed_posts.where("id IN(?)", post.id).bl

我希望有人能向我解释为什么我不能保存新唱片

class User < ActiveRecord::Base

    has_many :viewed_posts, :dependent => :destroy
    has_many :posts, :through => :viewed_posts

    def update_viewed_posts(post)
        if viewed_posts.where("id IN(?)", post.id).blank?
            puts '----------------------- NEVER READED POST'
            viewed_posts.build(:question_id => post.id, :user_id=> self.id)
        end
    end
end

class ViewedPosts < ActiveRecord::Base
    belongs_to :post
    belongs_to :user
end
也许你想要:

belongs_to :post
而不是

belongs_to :posts

我犯了错误。这不是帖子。这是post。有什么想法吗?试着将它改为“viewsed_posts.build(:question_id=>post.id)”,因为它应该自动知道用户id。另外,我认为在生成工作之前需要保存用户。@Tim你能举个例子吗?请记住,我唯一能想到的另一件事是,将类命名为“ViewedPost”而不是“ViewedPosts”,模型通常是单数的。
belongs_to :posts