ruby на рельсах url_for ломается при размещении более одной переменной в маршруте - PullRequest
0 голосов
/ 16 марта 2012

Для проекта rails 3 я пытаюсь создать SEO URL, например

/recipes/123/lasagna

У моей модели рецепта есть свойство name, а в файлеways.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 работать правильно?

1 Ответ

0 голосов
/ 16 марта 2012

Поскольку вы добавили recipes /: id /: name в файл маршрутов, вы можете пропустить : id => и: name => . Вы можете просто сделать это: recipe_path (recipe.id, recipe.name)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...