Ruby on Rails: как вы префикс именованных маршрутов? - PullRequest
5 голосов
/ 17 декабря 2010

Я хочу создать ссылку с префиксом, прикрепленным к самому названному маршруту.Примерно так, чтобы отобразить путь "/ old / recipes":

recipes_path(:prefix => "old/")  # the correct way should show "/old/recipes"

Я не хочу трогать файл route.rb, но изменяю именованный маршрут с добавленным префиксом.Это возможно и как бы вы сделали это правильно?

РЕДАКТИРОВАТЬ: Я использую Rails 3. Причина добавления необязательного префикса в том, что я хочу использовать обычный recipes_path.Поэтому я хочу использовать как "/ recipes", так и "/old/recipes".

1 Ответ

11 голосов
/ 17 декабря 2010

Если вы не хотите трогать файл маршрутов, вам будет очень больно, в основном потому, что Rails будет ссылаться на него, когда пытается выяснить, куда идет ваш маршрут.Я не знаю другого способа сделать это, поэтому вот код config / rout.rb , когда вы уверены, что это хорошая идея:

scope :path => "old" do
  resources :recipes
end

Теперь, когда вы маршрутизируетена recipes_path он перейдет на /old/recipes, хотя это может быть не то, что вы ищете.Если это так, то вы можете захотеть изменить опцию as в конце этого scope:

scope :path => "old", :as => "old" do
  resources :recipes
end

В этом случае этот маршрут теперь будет old_recipes_path, все еще направляясь к/old/recipes.

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