我在 有一个联系表格mysite.com/messages/new
。我喜欢在我网站的所有页面上提供此表单的想法。我有一个小问题。
如果我从主页提交 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>):
是否可以告诉 Rails 向我的 MessagesController 呈现发起 POST 请求的控制器和操作?