我正在为客户构建一个多站点的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获得子域值?