に連絡フォームがありmysite.com/messages/new
ます。このフォームを自分のサイトのすべてのページで利用できるようにするというアイデアが気に入っています。小さな問題が1つあります。
ホームページからにPOSTリクエストを送信し、/messages
検証に失敗した場合、messages/new.html.erb
(エラーメッセージとともに)レンダリングされます。私はこれで生きることができますが、呼び出し元のアクションのテンプレートをレンダリングしたいと思います(つまりhome/index.html.erb
)。
現在、メッセージコントローラーには次のものがあります。
def create
@message = Message.new(params[:message])
if @message.valid?
MessageMailer.message_us(@message).deliver
flash[:success] = "xthnxbai"
redirect_to root_url
else
# this is where I want to change things
render :new
end
end
私は以下を使用してみました:
else
render :template => "#{request.controller}/#{request.action}"
しかし、これは次のようになります。
NoMethodError (undefined method `controller' for #<ActionDispatch::Request:0xa113168>):
私のMessagesControllerへのPOSTリクエストを開始したコントローラーとアクションをレンダリングするようにrailsに指示することは可能ですか?