【发布时间】:2011-11-10 08:08:33
【问题描述】:
我有以下控制器动作:
def create
@board = Board.new(params[:board])
respond_to do |format|
if @board.save
set_board_session @board
set_new_board
format.js { render :action => "show" } #<== here I want to render html no js
else
format.js { render :action => "new" }
end
end
end
我想为 ajax 请求呈现 show.html.erb 动作而不是 show.js.erb 动作。
我该怎么做?
更新
这似乎对我有用:
我把它放在我的应用程序控制器中:
def redirect_to(options = {}, response_status = {})
if request.xhr?
render(:show) {|page| page.redirect_to(options)}
else
super(options, response_status)
end
end
现在我可以使用 Ajax 调用重定向。
format.js {redirect_to @board}
感谢forum:
【问题讨论】:
-
这个问题有帮助吗? stackoverflow.com/questions/339130/…
-
谢谢斯派克。不完全是我想要的。我想为 AJAX 请求渲染一个 html 页面而不是 js 页面。
-
关于使用 :file 给出完整文件名的建议不起作用?我的测试似乎有效 (:file => "controller/show.html.erb")
-
我确信它有效。我只是认为我正在寻找的更像是我发布的解决方案。我也会试试你的建议。
标签: ajax ruby-on-rails-3