【问题标题】:Subdomain link in view with Rails 4Rails 4 中的子域链接
【发布时间】:2016-02-15 23:53:30
【问题描述】:

我目前在我的 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。类似services.example.com/users/logout
  • 但我不想自己构建 url,我希望 Rails 帮助者这样做(例如包括当前语言环境)。

标签: ruby-on-rails hyperlink subdomain


【解决方案1】:

我们在某些应用程序中使用子域,并且发现您必须使用 _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 %>

这将使用链接的完整 URL(这可能有问题),但应该可以正常工作。该路径不起作用,因为它是相对。您必须使用 url 因为它会设置子域。

【讨论】:

  • 丰富,我不知道那种 url 可以在没有资源的情况下使用!太好了,刚刚学到了一些好东西。
  • 很好的答案。但我应该建议你使用 StackOverflow 的 syntax
  • 对不起,是的,我有复制/粘贴代码的习惯。我现在就换
猜你喜欢
  • 1970-01-01
  • 2014-08-17
  • 2013-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-31
  • 2012-05-01
相关资源
最近更新 更多