我有简单的文章和评论方案。文章有评论。
在我的文章展示操作中,我会显示文章和表单以添加评论。
提交评论时,会触发评论#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 %>
答案 0 :(得分:1)
试试这个。
render 'articles/show'
答案 1 :(得分:0)
创建操作是从new.html页面执行的吗?然后你可以使用:
render :new