Rails - 在重定向链接之前加载

时间:2017-01-25 12:43:08

标签: ruby-on-rails ruby-on-rails-4

当用户点击链接

http://localhost:3000/initial_link

它应该重定向到另一个网址,

http://google.com/redirected_link

此处在重定向时,需要显示加载图像。

我试过,

def click
  render 'loading' and return
  redirect_to 'http://google.com/redirection_link'
end

但上面不会工作。

注意:此外,重定向不应该发生在Js。

2 个答案:

答案 0 :(得分:0)

将你的link_to设为

<%= link_to_remote t('click'), :url => { } ,:loading => "$('loader').show();", :loaded => "$('loader').hide();" %> 
<%= image_tag("loader.gif",:id => "loader", :style => "display: none;") %>

然后在控制器中,

render(:update) do |page|
  page.redirect_to 'http://google.com/redirection_link'
end

答案 1 :(得分:0)

def initial_action
  unless request.xhr?
    response.headers["Location"] = "http://google.com/redirected_link"
    render template: "your_controller/initial_action", status: 301
  end
end

我认为这有效,但无法理解为什么你需要这个。