Comment puis-je valider les relations dans les modèles en RoR? Par exemple, j'ai 3 modèles:Validation des modèles relationnels dans 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
Et dans mon contrôleur:
@post = current_user.blogs.find(params[:post].delete(:blog_id)).posts.build(params[:post])
Mais quand je veux créer après je reçois:
Can't mass-assign protected attributes: blog_id
Je ne devrais pas obtenir cette erreur , parce que je supprime blog_id de hash params, ou non? Quoi qu'il en soit, quelle est la meilleure façon de valider l'accessoire blog_id sur User.blogs dans mon modèle Post?
Thx, mais je demande quelque chose d'autre. Par exemple, l'utilisateur n ° 1 dispose de blogs n ° 1 et n ° 2 et l'utilisateur n ° 2 de blogs n ° 3 et n ° 4. Comment puis-je valider blog_id dans le modèle Post, que pour l'utilisateur 1, il peut être seulement # 1 ou # 2 et # 3 ou # 4 pour l'utilisateur # 2? Et pourquoi j'ai une erreur si j'utilise params [: post] .delete (: blog_id)? –