当前用户阻止的文章和article.com之间的共享错误消息

时间:2017-04-04 16:31:48

标签: ruby-on-rails devise

我正在尝试在文章和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

0 个答案:

没有答案