我遇到了麻烦的路线,我不想筑巢。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