2017-08-07 18 views
0

我用下面的代码的页面:HTML/Ruby On Rails:自动执行重定向?

<div> 
    <% if @site.roster_management_enabled? %> 
    <h3><%= link_to "Go To Page", { :controller => 'roster_player_import', :action => 'rostering_redirect'}, :target => "_blank" %></h3> 
    <% end %> 
</div> 

上面提到的控制器/动作如下:

def rostering_redirect 
    url = URI.join(@site.boss_organization.admin_app_root_url, 'rostering') 
    redirect_to url.to_s 
    end 

我想上面列出的HTML代码来执行自动而不是由用户点击链接。更具体地说,是否有办法从控制器/操作返回URL并将其传递给HTML代码,以便我不必使用语法{:controller =>.....},而是使用类似URL=....

+0

你的问题不清楚给我。为什么不只是将带有条件的'redirect_to'调用添加到呈现视图的控制器方法中?或者我错过了什么? – spickermann

+1

那么用户将不得不点击链接,但你可以用'URI.join(@ site.boss_organization.admin_app_root_url,'rostering')来替换链接中的哈希值。to_s' – engineersmnky

+0

@engineersmnky oh just use instead of { :controller => ....}? – DeeWBee

回答

0

您可以将该URL重定向到直接在您的模板:

<div> 
    <% if @site.roster_management_enabled? %> 
    <h3><%= link_to 'Go To Page', URI.join(@site.boss_organization.admin_app_root_url, 'rostering').to_s, target: '_blank' %></h3> 
    <% end %> 
</div> 

这工作,如果:

  • @site可在模板中(从您的代码就在那里装不明确)
  • 你不需要在服务器端运行额外的检查/跟踪