Ruby on rails 当它';远程ajax调用了什么?

Ruby on rails 当它';远程ajax调用了什么?,ruby-on-rails,ajax,ruby-on-rails-3,Ruby On Rails,Ajax,Ruby On Rails 3,现在,此控制器中的此操作由远程ajax调用调用。 仅当选中复选框[:call]并提交时, 我想用flash消息重定向到……\u路径 可能吗?如果可能,怎么做 控制器 ..... if params[:comment][:call] == "1" flash[:notice] = "you checked and submit!" redirect_to ....._path else ajax page reload end 查看表单(使用ajax远程) 不,这是不可能

现在,此控制器中的此操作由远程ajax调用调用。
仅当选中复选框[:call]并提交时,
我想用flash消息重定向到……\u路径

可能吗?如果可能,怎么做

控制器

.....
if params[:comment][:call] == "1"
    flash[:notice] = "you checked and submit!"
    redirect_to ....._path
else
    ajax page reload
end
查看表单(使用ajax远程)


不,这是不可能的

您必须呈现将更改窗口位置的javascript:

window.location.href = 'http://your new location';
当然,在js视图中,您可以使用以下方式为url使用动态值:

window.location.href = '<%= @a_controller_variable %>';
window.location.href='';

您必须用js而不是controller编写此代码

在控制器中:

def action_name
  ....
  respond_to do |format|
    format.js
  end
end
制作一个action_name.js.erb文件并编写以下代码:

<% if params[:comment][:call] == "1" %>
  <% flash[:notice] = "you checked and submit!" %>
  window.location.href = <%= some_url %>
<% else %>
  $("#some_div_id").html("something")    //ajax page reload
<% end %>

window.location.href=
$(“#some_div_id”).html(“something”)//重新加载ajax页面

希望这对您有用。

非常感谢。这是我想要的完美答案:)
def action_name
  ....
  respond_to do |format|
    format.js
  end
end
<% if params[:comment][:call] == "1" %>
  <% flash[:notice] = "you checked and submit!" %>
  window.location.href = <%= some_url %>
<% else %>
  $("#some_div_id").html("something")    //ajax page reload
<% end %>