2009-10-12 4 views
0

У меня есть простой концептуальный вопрос, который меня озадачил. Я пытаюсь просто добавить новое представление под названием «Owner Show» к контроллеру получателей, который у меня есть. Это будет новая страница, на которой будет отображаться владелец получателя, информация об этом рецепте «для владельцев только для глаз». Я создал hello world erb и назвал его ownerhow.html.erb. Я добавил пустую операцию к контроллеру с именем ownerhow. Я создал новый маршрут под названием map.ownershow '/ recipients /: action /: id ": action =>' ownerhow '. Он бомбит. Что я делаю неправильно? Похоже на такую ​​простую вещь.Добавить представление в существующее приложение Rails - просто?

ответ

1

Это частично зависит от версии Rails вы используете, но я думаю, что ваш маршрут не совсем правильно

Я считаю, что вам нужно объявить маршрут следующим образом, если вы хотите именованный маршрут:.

map.ownershow :controller => 'recipients', :action => 'ownershow' 

Однако указанный маршрут немного отличается от обычного маршрута. named route создает такое отображение, что вы можете просто сказать myapp.com/ownershow и не myqpp.com/recipients/ownershow. Вы, вероятно, хотите просто добавить к restful member route так:

map.resources :recipients, :member => { :ownershow => :get } 

Весь Rails routing guide очень хорошо читать и помогает объяснить многие из этих типов вопросов.

0
map.ownershow '/recipients/:action/:id" :action =>'ownershow' 

должен быть

map.ownershow '/recipients/ownershow/:id", :controller => 'recipients', :action =>'ownershow' 

Первый элемент путь, который вы пытаетесь соответствовать и Титулы, которые выбираются из нее, остальные значения вы жесткое кодирование для всех запросов к этому пути (это упрощение, но вы получите идею.

вы должны указать по крайней мере, контроллер и действие в той или иной форме (от пути согласовани, или жёстко) для всех маршрутов.

Смежные вопросы