0

プロジェクトとレビューの2つのモデルがあります。プロジェクトhas_manyレビューとレビューbelong_toプロジェクト。プロジェクトを開くと( RESTアクションを表示)、レビューを追加できます。ただし、フォームからデータを受け入れて保存するコントローラーは、プロジェクトによって異なります(ProjectsControllerでアクションを表示し、ReviewsControllerでレビューのアクションを作成します)。

問題は、レビューモデルのエラーをレンダリングする方法がわからないことです。コントローラーが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 に答える