【问题标题】:How to get resource id from subdomain in Rails 4?如何从 Rails 4 中的子域获取资源 ID?
【发布时间】:2015-01-12 09:58:39
【问题描述】:

我们正在开发一个会议管理应用程序,大部分资源是会议的嵌套资源。现在,我们决定为会议主页使用子域,但在重构资源时遇到了麻烦。

当前的 url 方案是这样的:

/conferences/:id/演讲

/conferences/:id/manage

我们想将 /conferences/:id 部分移动到子域并使用以下资源:

conferenceid.sitename.com/speeches

conferenceid.sitename.com/manage

以下是当前的路由文件: https://github.com/kodgemisi/confdeck/blob/development/config/routes.rb#L17

进行这种过渡的最佳方式是什么?我们如何防止当前的 url helpers?

【问题讨论】:

标签: ruby-on-rails routing


【解决方案1】:

首先让我们调整您的子域类。下面的代码应该足够了

class Subdomain
  def self.matches?(request)
    request.subdomain.present? && request.subdomain != 'www'
  end
end

那么你应该可以在路由中调用它

constraints(Subdomain) do  
    resource :conference, path: "/" do
      member do
        get 'apply'
        post 'apply' => "conferences#save_apply"
      end
    end

然后在你的控制器中你是这样的:

Conference.find_by_slugged!(request.subdomain)

(我看到你使用友好的 id,所以我认为你的子域是会议的sluggged

【讨论】:

    猜你喜欢
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多