【问题标题】:Subdomain argument is ignored in my links, so all links are prepend with request.subdomain我的链接中忽略了子域参数,因此所有链接都以 request.subdomain 开头
【发布时间】:2014-07-04 23:49:21
【问题描述】:

我有一个Ruby on Rails 4 网站,我希望将其拆分为domain.commysubdomain.domain.com。我正在使用lvh.me 进行测试。

我的路线文件:

MyApp::Application.routes.draw do
  scope "(:locale)", locale: /#{I18n.available_locales.join("|")}/ do

    get "first_page" => "pages#first_page", :as => :first_page

    constraints subdomain: "mysubdomain" do
      get "second_page" => "pages#second_page", :as => :second_page
    end

    root :to => 'pages#index'

  end
end

在我的视图文件中,我有:

= link_to "First page",  first_page_path
= link_to "Second page", second_page_path(:subdomain => "mysubdomain")

但是subdomain 参数显然被忽略了。相反,所有链接都以request.subdomain 开头。

所以如果例如我在:

http://mysubdomain.lvh.me:3000/second_page

那么网页上的链接如下:

http://mysubdomain.lvh.me:3000/first_page   # Not as intended
http://mysubdomain.lvh.me:3000/second_page  # As intended

如何解决这个问题?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 routes subdomain


    【解决方案1】:

    问题是您使用的是_path 助手而不是_url 助手。前者生成相对路径,因此站点将使用当前主机,而后者生成完整 URL。

    = link_to "Second page", second_page_url(subdomain: "mysubdomain")
    

    应该做你正在寻找的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      相关资源
      最近更新 更多