我的控制器操作perform_review
正在响应 json。只要有要获取的订单,就会perform_review.js.erb
使用新订单重新渲染视图部分,但是当我们无法查看订单时,perform_review.js.erb
应该重定向到其他页面。
控制器如下所示:
## orders_controller.rb
class OrdersController < ApplicationController
def perform_review
...
@order = get_order
respond_to do |format|
format.html {
redirect_to orders_path(current_user)
}
format.js {
if @order == nil
@redirect_path = orders_path
return
end
}
end
end
end
这是 js.erb 文件:
## perform_review.js.erb
if ("<%=@redirect_path %>" != "") {
location.href = "<%=@redirect_path %>";
}
else
var order_options_partial = $("#order_options_partial");
order_options_partial.children().remove();
order_options_partial.append('<%= j render("order_options") %>');
该else
部分工作正常,但 if 部分没有。奇怪的是控制器中的一切都很好,@redirect_path
并被分配了“/orders”。但是,perform_review.js.erb
在此之后似乎没有被触发。为了确定这一点,我试图输入一行console.log("Starting perform_review.js.erb");
,但它没有在浏览器控制台中被调用......