2010-10-10 4 views
0

, который позволяет мне загрузить URL, какRails 3 Понимание контроллера/Маршруты отношения

  • /фото
  • /фотографии/2
  • /фотографии/2/редактировать

Редактировать позволяет пользователю изменять изображение, но я хочу, чтобы для типа типа разрешений, специфичного для приложения, которое я создаю, я хотел бы изменить вид вида, который будет выглядеть так:

  • /фотография/2/updatesettings

Так в фото контроллера я добавил "DEF updatesettings ...."

И на маршрутах, которые я добавил:

resources :photos do 
collection do 
    get 'updatesettings' 
end 
end 

Но я «Ошибка при получении ошибки:« Ошибка маршрутизации Нет совпадений в маршруте »

Предложения? благодаря

ответ

1

Что вы имеете в файле маршрутов будет соответствовать URL «/ фотографии/updatesettings»

Единственный способ я знаю, как сделать то, что вы хотите сделать, это:

match "photos/:id/updatesettings" => "photos#updatesettings" 

Во втором часть этой строки, фотографии сообщают ему посмотреть в контроллере фотографий, а #updatesettings - это метод вызова.

Вы бы поместить это снаружи ресурсов: фотографии, так что ваш код будет

resources :photos 
match "photos/:id/updatesettings" => "photos#updatesettings" 
1

Существует высокая вероятность того, что вы используете форму для обновления этих параметров, я прав? *

В этом случае вы хотите сделать post 'updatesettings' в файле маршрутов, а не get. Это определит маршрут, который отвечает на запросы POST, а не на тот, который отвечает только на запросы GET. Если вы хотите, чтобы оба использовали в своем файле маршрутов get и post.

* В большинстве случаев, да.

+0

Ну Мне нужны ShowSettings для визуализации HTML страницы с указанием всех параметров ... Тогда я предполагаю, что я нужен updateetstings для отправки в? – AnApprentice

+0

У меня есть таблица разрешений, которая обрабатывает все это. Возможно, это принадлежит этому контроллеру ... – AnApprentice

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