RoRのモデルの関係を検証するにはどうすればよいですか?たとえば、私は3つのモデルがあります:RoRの関係モデルの検証
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 hashからblog_idを削除しているか、そうでないのですか?いずれにしても、投稿モデルのUser.blogsにblog_idアクセサリを検証するにはどうすればよいでしょうか?あなたはどのポストが書き込みの後に公開されなければならないブログ設定したい場合は
Thxしかし、私は何か他のことについて質問します。たとえば、ユーザー#1には#1と#2のブログがあり、ユーザー#2には#3と#4のブログがあります。投稿モデルでblog_idを検証するにはどうすればいいですか?ユーザー1の場合は#2または#3、または#4のみになります。なぜ私はparams [:post] .delete(:blog_id)を使用しているとエラーになるのですか? –