コード全体はこの質問からのものです: Nested form validations not working in rails app
検証は機能しますが、問題は error_message にあります。それは単に現れていません。
コントローラーの redirect_to が原因で機能しないことがわかりました。
class MessagesController < ApplicationController
def create
@trip = Trip.find(params[:trip_id])
@message = @trip.messages.create(params[:message])
if @trip.messages.create
MessageMailer.send_message(@message).deliver
redirect_to thank_you_path
else
redirect_to trip_path(@trip)
end
end
end
そして、代わりにレンダリングを使用する必要があります。しかし、問題はどのようにですか?
このメッセージ フォームは別のモデルの表示ページ内にあり、メッセージが検証に合格しない場合は、同じ表示ページにエラー メッセージを表示したいと考えています。
手伝ってくれますか ?ありがとう!
アップデート:
レーキルート
messages GET /messages(.:format) {:action=>"
index", :controller=>"messages"}
POST /messages(.:format) {:action=>"
create", :controller=>"messages"}
new_message GET /messages/new(.:format) {:action=>"
new", :controller=>"messages"}
edit_message GET /messages/:id/edit(.:format) {:action=>"
edit", :controller=>"messages"}
message GET /messages/:id(.:format) {:action=>"
show", :controller=>"messages"}
PUT /messages/:id(.:format) {:action=>"
update", :controller=>"messages"}
DELETE /messages/:id(.:format) {:action=>"
destroy", :controller=>"messages"}
trip_messages GET /trips/:trip_id/messages(.:format) {:action=>"
index", :controller=>"messages"}
POST /trips/:trip_id/messages(.:format) {:action=>"
create", :controller=>"messages"}
new_trip_message GET /trips/:trip_id/messages/new(.:format) {:action=>"
new", :controller=>"messages"}
edit_trip_message GET /trips/:trip_id/messages/:id/edit(.:format) {:action=>"
edit", :controller=>"messages"}
trip_message GET /trips/:trip_id/messages/:id(.:format) {:action=>"
show", :controller=>"messages"}
PUT /trips/:trip_id/messages/:id(.:format) {:action=>"
update", :controller=>"messages"}
DELETE /trips/:trip_id/messages/:id(.:format) {:action=>"
destroy", :controller=>"messages"}