Rails - 评论实施的问题

时间:2014-07-08 14:23:36

标签: ruby-on-rails-3 comments form-for

我的Rails应用程序遇到了一些麻烦。我有一些视频教程,我想让用户写一些评论。我创建了3个模型:comment.rb,user.rb和tutorial.rb。教程有很多评论,属于用户;评论属于教程和用户;用户有很多评论和很多教程。我在tutorial_controller中有创建动作,它可以工作。创建教程后,将呈现带有comment_form的视图。此时,用户可以在他提交我在comments_controller中遇到创建操作问题时写下他的评论。 消息错误是

CommentsController中的NoMethodError #create

未定义的方法`评论'为nil:NilClass

为什么'评论'未定义?当然没有创建评论。 现在有些代码...

评论模型:

   class Comment < ActiveRecord::Base
  #content may be tutorial, post etc. Body is the real content of the comment
  attr_accessible :writer, :content, :body

  belongs_to :user
  belongs_to :tutorial
end

在评论控制器中创建操作:

def create

    @comment = Comment.new
    @comment = @tutorial.comments.build(params[:comment])

    if @comment.save
      flash[:success] = 'Your comment was successfully added!'
      render 'tutorials/show'
    else
      render 'tutorials/show'
    end
  end

评论表:

<%= form_for(@tutorial.comments.build(params[:id])) do |f| %>


    <div class="form-group">
      <%= f.label :body %>
      <%= f.text_area :body, class: 'form-control', required: true %>
    </div>

    <%= f.submit class: 'btn btn-primary' %>
<% end %>

在教程控制器中显示操作:

def show
    #shows the page of the single tutorial
    @tutorial = Tutorial.find(params[:id])
    current_tutorial = @tutorial
  end

谢谢!

0 个答案:

没有答案