子域 link 可见 Rails 4
Subdomain link in view with Rails 4
我目前在 Rails 4.2 应用程序中使用子域。
我可以在我的控制器中使用像这样的子域创建 url:
redirect_to subdomain: 'cloud', controller: '/home', action: 'login'
但是,我无法在我的视图中创建带有子域的链接:
<%= link_to t(:LOG_OUT), { :subdomain => 'services', :controller => 'users', :action => 'logout' } %>
=> 子域不会因所需(服务)而改变。我也尝试 url_for(),同样的事情。怎么了?
我们在我们的一些应用程序中使用子域,并且发现您必须使用 _url
助手(而不是 _path
helper):
#config/routes
constraints subdomain: "admin" do
namespace :admin, path: "" do
...
end
end
我们这样称呼它:
def after_sign_in_path_for(resource)
if resource.admin? && resource.admin_redirect?
admin_root_url
--
因此您将能够执行以下操作:
<%= link_to "Logout", services_users_logout_url %>
这将为 link 使用完整的 URL(这可能会有问题),但应该可以正常工作。该路径无效,因为它是 相对的 。您必须使用 url 因为它会设置子域。
我目前在 Rails 4.2 应用程序中使用子域。
我可以在我的控制器中使用像这样的子域创建 url:
redirect_to subdomain: 'cloud', controller: '/home', action: 'login'
但是,我无法在我的视图中创建带有子域的链接:
<%= link_to t(:LOG_OUT), { :subdomain => 'services', :controller => 'users', :action => 'logout' } %>
=> 子域不会因所需(服务)而改变。我也尝试 url_for(),同样的事情。怎么了?
我们在我们的一些应用程序中使用子域,并且发现您必须使用 _url
助手(而不是 _path
helper):
#config/routes
constraints subdomain: "admin" do
namespace :admin, path: "" do
...
end
end
我们这样称呼它:
def after_sign_in_path_for(resource)
if resource.admin? && resource.admin_redirect?
admin_root_url
--
因此您将能够执行以下操作:
<%= link_to "Logout", services_users_logout_url %>
这将为 link 使用完整的 URL(这可能会有问题),但应该可以正常工作。该路径无效,因为它是 相对的 。您必须使用 url 因为它会设置子域。