如何在 RoR 中验证模型中的关系?例如,我有 3 个模型:
class Post < ActiveRecord::Base
belongs_to :blog
has_one :user, :through => :blog
validates :blog_id, :presence => true
end
class Blog < ActiveRecord::Base
belongs_to :user
has_many :posts, :dependent => :destroy
end
class User < ActiveRecord::Base
has_many :blogs
has_many :posts, :through => :blogs
end
在我的控制器中:
@post = current_user.blogs.find(params[:post].delete(:blog_id)).posts.build(params[:post])
但是当我想创建帖子时,我得到:
Can't mass-assign protected attributes: blog_id
我不应该得到这个错误,因为我是从 params 哈希中删除 blog_id,还是不?无论如何,在我的 Post 模型中验证 User.blogs 的 blog_id 附件的更好方法是什么?