鄉親們! 我不知道如何使URL像:site.com/coding/ruby/rails/article-name 正如你可以看到有嵌套的類別。我已經看過行爲樹和真棒嵌套集,但它使得像網站site.rails/article-name。RoR嵌套類別
所以,請幫我
鄉親們! 我不知道如何使URL像:site.com/coding/ruby/rails/article-name 正如你可以看到有嵌套的類別。我已經看過行爲樹和真棒嵌套集,但它使得像網站site.rails/article-name。RoR嵌套類別
所以,請幫我
你可以嘗試使用Friendly-id。
要這樣設置,你下手,做了路線 「路線通配符」:
match "*category" => "categories#show"
或
match "categories/*category" => "categories#show"
,您將收到的所有零件的URL通過params
散列。爲了保持乾淨的東西,在你的模型中定義的搜索邏輯模型中的
def show
@category = Category.find_recursive(*params[:categories])
end
,定義找到類的方法。我假設acts_as_tree在模型中定義
def self.find_recursive(*categories)
children = roots
last = nil
categories.each do |category|
return unless children
last = children.find_by_permalink(category)
children = last.children
end
last
end
如果你想使用一個資源FUL控制器,使得這樣的路徑:
scope '(*categories)' do
resources :articles
end
這將需要使用在結束「文章」你的網址:/編碼/的Ruby/Rails /條/條名
,或者你可以使用這樣的路線:
match '(*categories)/:id' => 'articles#show', :as => :article
,這將讓你做article_path(:類=> '編碼/的Ruby/Rails',:ID => article.friendly_id)
獲取/編碼/的Ruby/Rails /條名
如果您正在使用awesome_nested_set,你可以通過做類似的東西產生類別字符串
article.category.self_and_ancestors.join("/")
tnx,我已經試過這個寶石。主要的問題是維護url中的「breadcrumbs」(嵌套url)。轉換rails/1到rails/article-name我沒有任何問題 – Fluffy 2011-02-05 08:52:30