我正在尝试在文章和article.com之间实现共享错误消息,这是一种嵌套资源。我相信我遇到的问题是由于评论控制器中的current_user
。
我正在使用目标。
<%= render "shared/error_messages", :target => @article %>
这适用于文章,但不适用于评论。
<%= render "shared/error_messages", :target => @comment %>
返回一个未定义的方法`errors&#39;为nil:NilClass错误。
文章和评论都属于用户。注释也属于文章,作为嵌套资源。
# Comment Controller
def create
@article = Article.find(params[:article_id])
#I believe this current user is causing the problem.
@comment = current_user.comments.build(comment_params)
@comment.article_id = @article.id
if @comment.save
redirect_to article_path(@article)
else
redirect_to article_path(@article)
end
end
#Articles Model
class Article < ActiveRecord::Base
belongs_to :user
has_many :comments, :dependent => :destroy
end
#Comment Model
class Comment < ActiveRecord::Base
belongs_to :article
belongs_to :user
end
#User Model (devise)
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :articles
has_many :comments, :dependent => :destroy
end