子域 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 因为它会设置子域。