Ruby on rails RubyonRails url_,用于在路由中放置多个变量时中断
对于Rails3项目,我尝试创建seo URL,如Ruby on rails RubyonRails url_,用于在路由中放置多个变量时中断,ruby-on-rails,ruby,routes,Ruby On Rails,Ruby,Routes,对于Rails3项目,我尝试创建seo URL,如 /recipes/123/lasagna 我的配方模型有一个name属性,我在routes.rb中指定了以下内容: resources :recipes, :path => "recipes", :except => [:show] get :path => "recipes/:id/:name", :controller => :recipes, :action => :show, :as => :rec
/recipes/123/lasagna
我的配方模型有一个name属性,我在routes.rb中指定了以下内容:
resources :recipes, :path => "recipes", :except => [:show]
get :path => "recipes/:id/:name", :controller => :recipes, :action => :show, :as => :recipe
控制器按需要工作,但
url_for
及
中断
-它似乎不知道该用什么:name
我希望它以默认方式工作-使用
recipe_path(recipe)
解决方法是使用
recipe_path(:id => recipe.id, :name => recipe.name)
这并不是很好,这意味着我必须修改我的所有观点
adding:name是将名称添加到url的正确方法吗?
我怎样才能使配方路径正常工作?
因为您已将recipes/:id/:name添加到路由文件中,所以可以省略:id=>和:name=>。您可以这样做:recipe\u pathcipe.id,recipe.name尝试切换路由文件中两行的顺序。
recipe_path(:id => recipe.id, :name => recipe.name)