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

时间:2015-01-12 09:58:39

标签: ruby-on-rails routing

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

目前的网址方案如下:

/会议/:ID /讲话

/会议/:ID /管理

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

conferenceid.sitename.com/speeches

conferenceid.sitename.com/manage

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

进行此转换的最佳方式是什么?我们如何防止当前的网址助手?

1 个答案:

答案 0 :(得分:1)

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

function type(callback) {
  captionEl.html(caption.substr(0, captionLength++));
  if(captionLength < caption.length+1) {
    setTimeout(type, 50);
  } else {
    captionLength = 0;
    caption = '';
    callback();
  }
}

type(erase);

// somewhere later in the code it does something else after type is done
type(duplicate);

那么你应该能够在路线中使用以下

来调用它
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

(我看到你使用友好ID,所以我认为你的子域名是会议的Conference.find_by_slugged!(request.subdomain)