Rails 3:has_many:通过保存问题?
问题描述:
我希望有人能向我解释为什么我不能保存新记录?Rails 3:has_many:通过保存问题?
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
我的问题是,当我打电话update_view_posts
方法记录永远不会救?为什么?
编辑:添加了我的控制器。我在演出中打电话update_view_posts
。
class PostsController < ApplicationController
respond_to :html
before_filter :find_post, :only => [:show, :edit, :update, :destroy]
def show
if current_user
current_user.update_viewed_posts(@post)
end
respond_with(@post)
end
end
答
也许你想:的
belongs_to :post
代替
belongs_to :posts
我没有犯错。这不是帖子。这是post.Any想法? – Zeck 2010-12-18 06:31:55
尝试将其更改为“viewed_posts.build(:question_id => post.id)”,因为它应该自动识别用户标识。 – 2010-12-18 06:40:44
Doh,不工作。任何想法? – Zeck 2010-12-18 06:43:20