我有以下控制器操作:
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
我想渲染show.html.erb操作而不是ajax请求的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:
答案 0 :(得分:1)
在AJAX请求中将dataType设置为“html”,Rails将正确处理AJAX请求并呈现html,而不是js。
答案 1 :(得分:0)
这似乎对我有用:
我把它放在我的应用程序控制器中:
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}