如何从Rails 4中的子域获取资源ID?

xap*_*aph 5 routing ruby-on-rails

我们正在开发一个会议管理应用程序,大部分资源都是会议的嵌套资源.现在,我们决定将子域用于会议主页,并在重构资源方面遇到麻烦.

目前的网址方案如下:

/会议/:ID /演讲

/会议/:ID /管理

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

conferenceid.sitename.com/speeches

conferenceid.sitename.com/manage

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

实现这一转变的最佳方式是什么?我们如何防止当前的网址助手?

Tim*_*mer 1

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

class Subdomain
  def self.matches?(request)
    request.subdomain.present? && request.subdomain != 'www'
  end
end
Run Code Online (Sandbox Code Playgroud)

那么你应该能够使用以下命令在路由中调用它

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

然后在你的控制器中你可以像这样:

Conference.find_by_slugged!(request.subdomain)
Run Code Online (Sandbox Code Playgroud)

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