我有一个包含以下代码的页面:
<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=....
您可以将重定向到的网址直接放在模板中:
<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
可用(从您的代码中不清楚它的加载位置( - 您无需在服务器端运行额外的检查/跟踪