2
我有一个单一的模式:轨道 - 如何使嵌套的路线与祖先
class Page < ActiveRecord::Base
has_ancestry
validates :slug, :name, uniqueness: true, presence: true
before_validation :generate_slug
def to_param
slug
end
def generate_slug
self.slug = Russian.translit(name).parameterize
end
end
和我使用ancestry
宝石创建的页面和子页面树,即页面可以有多个子页面和子页面也可以有多个子页面,以此类推至无穷大。
但我的问题是,我不能做的东西是/page-1/page-1-2/page-1-2-1
。所有子页面的URL是:/page-1-2
或/page-1-3-1
。
我的routes.rb:
Rails.application.routes.draw do
get '/pages' => 'pages#index'
resources :pages, path: "", path_names: { new: 'add' }
root 'pages#index'
end
如何使嵌套的网址是什么?
谢谢!
它的作品,THX!但是当我想编辑一些子页面时,我发现错误“ActiveRecord :: RecordNotFound'和'Parameters:{”slug“=>”page-1/page-1-1/page-1-1-1/page-1 1-1-1 /编辑“}'。我如何解决这个问题? – jazzis18 2014-11-04 12:01:21
你需要使用'Page.find_by_slug(params ['slug'])'。另外,如果有帮助,请不要忘记[接受答案](https://stackoverflow.com/tour)。 – Surya 2014-11-04 12:04:15
对不起)是的,我用它'find_by_slug',但我都一样抓住这个错误。 – jazzis18 2014-11-04 12:38:14