私のレール アプリには、has_many 取引のある House モデルがあります。私は家のショーページにこれらの取引を表示しています. フォームを送信すると、すべてが正常に機能します。ただし、Deal モデルに検証エラーがある場合、私のシステムは正常に動作していません。取引モデルに検証エラーがある場合。
私のroutes.rbには
resources :houses do
resources :deals
end
deal_controller.rbには、次の create メソッドがあります。
def create
@house = House.find_by_slug(params[:house_id])
@deal = @house.deals.build(params[:deal])
@deal.user = current_user
respond_to do |format|
if @deal.save
format.html { redirect_to @house, :notice => 'Your offer has been created successfully' }
format.json { render json: @house, status: :created, location: @house }
else
format.html { redirect_to @house, :alert => 'Oops, something went wrong. Please try again' }
format.json { render json: @house.errors, status: :unprocessable_entity }
end
end
end
redirect_toは正常に動作していますが、検証フォーム モデルに失敗したときにエラー メッセージをカスタマイズできません。
@deal.save が失敗したときにこのメソッドをチェックしました。
render :template => 'houses/show'
このメソッドは、モデル検証の失敗時に Rails でコメント コントローラーをレンダリングする場所で見たことがありますか?
フォームには次のアクションがあるため、単に家をレンダリングしたいのですが、うまくいきません。
/houses/name-of-house/deals
/houses/name-of-house/ にリダイレクトしない
ハウス コントローラーからのアクション ショーで、フォーム ディール (子) からエラー検証を取得するにはどうすればよいですか?