0

我有 2 个模型 - 项目和审查。项目 has_many review 和 Review belongs_to Project。当我打开项目(显示REST 操作)时,我可以为其添加评论。但是从表单接受数据并保存数据的控制器在项目上是不同的(在 ProjectsController 中显示动作,在 ReviewController 中创建 Review 动作)。

问题是我不明白 Review 模型是如何呈现错误的。如果我有 1 个控制器,我会执行以下操作:

if @project.save
  respond_to do |format|
    format.js
    format.html {redirect_to :back, :notice => I18n.t("activerecord.attributes.project.added")}
  end
else
  render :action => :show
end

Rails 在每个有错误的表单字段下呈现错误消息。不接受 Flash 消息。

4

1 回答 1

1

在您的评论控制器中,尝试以下操作

def create
  @project = Project.find... # fetch the project
  @review = @project.reviews.build params[:review]
  @review.save

  render template: 'projects/show'
end

在项目页面中,检查@review是否有错误

# app/views/projects/show.html.erb
<% if @review && @review.errors.any? %>
  ...
<% end %>
于 2013-02-06T11:55:35.823 回答