我遇到了麻煩的路線,我不想築巢。Rails 3路線範圍和/或嵌套
我有以下途徑:
resources :foos
resources :bars
resources :bazs do
resources :hellos
resources :worlds
end
的富,酒吧和巴茲車型都belong_to用戶模型。我不想嵌套另一層,但我希望在我的url中有一個與用戶的永久鏈接屬性相對應的前綴(類似於每個由用戶名前綴的每個github回購)。所以,我過濾器前有我所有的控制器
def get_scope
@user = User.find_by_permalink(params[:permalink])
end
修改to_param感謝@cowboycoded
class User < ActiveRecord::Base
def to_param
permalink
end
end
我包的路由與
scope ":permalink", :as => :user do
#nested routes here
end
現在一切正常,只要我將@user傳遞給每個非索引路由。當它已經被作用域時,回到我的所有視圖並且用(@user,@foo)替換(@foo)似乎並不是很乾燥。
除非我誤解了,否則to_param方法會簡單地替換:id,以便諸如/ users /:id之類的網址顯示爲用戶/永久鏈接而不是用戶/ 1。我試圖在我的作用域中使用這個:id,但它與foo的:id參數衝突並且破壞了所有內容。也許有一個連接到我失蹤的路徑?
感謝您的任何建議,您可能有!
合併路徑助手解決方案和to_param方法。 – 2011-02-27 21:24:38