多站点应用Rails中的Url模型名



我正在为客户构建一个多站点的Rails应用程序。功能是创建新的网站和管理他们。

我已经为每个网站设置了子域名。交货。

site1.example.com 
site2.example.com

每个网站都有我们可以创建、编辑和销毁的页面。例子:

site1.example.com/pages/1

问题是,网站有一些页面有相同的名称,如"联系"。我想在url中显示页面名称。例子:

site1.example.com/contact
site2.example.com/contact

不管是:

site1.example.com/pages/contact
def_param不合适,因为它在名称之前显示了页面的id。Friendly_id gem具有鼻涕虫功能,但我们有2页具有相同的名称。然后在名字后面加上一个数字。例子:
site1.example.com/pages/contact
site2.example.com/pages/contact--2

对如何构建这个有什么想法吗?

谢谢!

validates_uniqueness_of可以在作用域参数中这样做。

class Page < ActiveRecord::Base
  validates_uniqueness_of :url, :scope => :site_id
end
http://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_uniqueness_of

当然控制器会根据子域查找页面,所以路由看起来很正常。

为了以防万一这就是子域

的获取方法
request.subdomain

如何从url获得子域值?

最新更新