Rails嵌套表单验证错误

时间:2015-07-18 11:09:57

标签: ruby-on-rails

我有简单的文章和评论方案。文章有评论。

在我的文章展示操作中,我会显示文章和表单以添加评论。

提交评论时,会触发评论#create action。

保存成功后,它会重定向回文章节目操作。哪个工作正常。

我的问题是当保存不成功时应该采取什么行动?

通常我会简单地使用:“渲染编辑”但是在这种情况下我没有评论#edit action。

class ArticlesController < ApplicationController
  def show
    @article Article.find(params[:id])
    @comments = @article.comments.order(created_at: :asc).page(params[:page]).per_page(5)
    @comment = Comment.new
  end
end

class CommentsController < ApplicationController
  def create
    @article = Article.find(params[:id])
    @comment = @article.comments.new(discussion_params)
    @comment.user_id = current_user.id

    if @comment.save
      redirect_to @article
    else
      render ???
    end
  end

  private

    def discussion_params
      params.require(:comment).permit(:content)
    end
end

_form.html.erb

<%= form_for([@article, Comment.new], html: { class: "comment-form", id: "comment-form" }) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <%= f.text_area :content, placeholder: "Add a comment...", rows: 3, minlength: 10, maxlength: 1000 %>
  <button class="btn btn-success" type="submit">Post comment</button>
<% end %>

2 个答案:

答案 0 :(得分:1)

试试这个。

 render 'articles/show'

答案 1 :(得分:0)

创建操作是从new.html页面执行的吗?然后你可以使用:

render :new