我想要實現的是類似於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
試過,我已經花了在這個問題上過多的時間和我目前的方法是使用一個方便的方法來添加:用戶名參數。儘管如此,我認爲在整個地方使用這種方法只是爲了添加一個條目(糟糕的代碼味道)。我想知道這個問題是否有更優雅的解決方案。