我在mysite.com/messages/new
有联系表格。我喜欢在我网站的所有页面上提供此表单的想法。我有一个小问题。
如果我从主页向/messages
提交POST请求且验证失败,则会呈现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将控制器和发起POST请求的操作呈现给我的MessagesController?
答案 0 :(得分:2)
在这种情况下猜猜通过AJAX提交表单将为您节省培根。特别是考虑到在Rails中可以轻松完成。