2012-03-16 64 views
0

爲Rails 3的項目,我想創建搜索引擎優化的URL像Ruby on Rails的將不止一個變量時到線路

/recipes/123/lasagna 

我的食譜模型有一個名稱屬性url_for打破,並在路線.RB我已指定以下內容:

resources :recipes, :path => "recipes", :except => [:show] 
get :path => "recipes/:id/:name", :controller => :recipes, :action => :show, :as => :recipe 

控制器工作如所期望的,但

url_for 

recipe_path 

突破 - 它似乎不知道是幹什麼用的:名字

我想它的工作的默認方式 - 使用

recipe_path(recipe) 

一個解決方法是使用

recipe_path(:id => recipe.id, :name => recipe.name) 

這不是真的很漂亮 - 這意味着我必須修改所有我的觀點

  1. 添加:名稱正確的方法將名稱添加到URL?
  2. 如何讓recipe_path正常工作?
+0

嘗試切換路線文件中兩行的順序。 – bblack 2012-03-16 01:28:12

回答

0

因爲你已經添加食譜/:ID /:命名到你的路由文件,你可以離開了:ID =>和:名稱=>。你可以這樣做:recipe_path(recipe.id,recipe.name)