我想要实现的是类似于Github的路由方式。例如。我在URL/hjuskewycz /问题中有一个名为'question'结果的项目。所以我的目标是让第一部分是用户名,第二部分是项目名称。Rails 3路由:在一个模型中在路径中使用2个动态段
我尝试了几个不同的方法,这是一个我坚持现在:
scope ":username" do
resources :projects, :path => "" do
resources :pictures
end
end
使用
project_path :username => project.owner.username, :id => project.to_param
按预期工作。但是,总是指定用户名,尽管它始终是用户的用户名,但是很繁琐。我非常喜欢
project_path(:id => project.to_param)
我知道关于default_url_options和url_for和我挖了代码。但是,polymorphic_url不使用default_url_options。
我试着在routes.rb中:
resources :projects, :path => "", :defaults => {:username => Proc.new { "just_testing" }}
,因为你可以使用约束一个进程,但还没有得到它的工作无论是。
我project.rb
def to_param
"#{owner.username"/#{project.title}"
end
试过,我已经花了在这个问题上过多的时间和我目前的方法是使用一个方便的方法来添加:用户名参数。尽管如此,我认为在整个地方使用这种方法只是为了添加一个条目(糟糕的代码味道)。我想知道这个问题是否有更优雅的解决方案。