Rails3 Routes — передача параметра маршруту участника

Я хотел бы передать дополнительный параметр членскому маршруту ресурса

что-то типа:

resources :events do
  member do
    get 'register/:participant_type_id'
  end
end

Я мог сделать это только с помощью оператора статического соответствия

Просматривая Интернет, я увидел, что это возможно в Rails 3.0.2. Я использую 3.0.1, и это точно не так.

Я делаю что-то неправильно? или это действительно невозможно?

Благодарность


person Diogo    schedule 24.11.2010    source источник
comment
Предполагается, что это возможно с 3.0.1, вы получаете сообщение об ошибке?   -  person edgerunner    schedule 24.11.2010
comment
нашел это, не уверен, что это связано ... rails.lighthouseapp.com/projects/8994/tickets/   -  person Diogo    schedule 24.11.2010


Ответы (2)


Попробуй это:

resources :events do
  member do
    get 'register/:participant_type_id', :action => 'register'
  end
end
person Fábio Batista    schedule 24.11.2010
comment
Я не знаю, я просто предоставляю то, что мое приложение говорит мне, что оно отсутствует. Там написано «отсутствует действие», я даю им действие. - person Fábio Batista; 25.11.2010

Просто чтобы завершить ответ моими маленькими выводами. Меня это тоже какое-то время смущало.

В Rails3 маршрут члена с параметрами не будет иметь автоматически сгенерированного помощника xx_yy_path. Вам нужно добавить его, указав часть :as =>, опустив имя resources.

Что касается приведенного примера, чтобы получить register_event_path и register_event_url, вам нужно определить его следующим образом:

resources :events do
  member do
    get 'register/:participant_type_id', :action => 'register', :as => 'register'
  end
end
person larryzhao    schedule 02.04.2012
comment
как получить идентификатор события внутри действия регистрации? - person lessless; 05.05.2015
comment
@lessless в пределах resources :events и member Я считаю, что параметр id, представляющий event id, автоматически находится в сгенерированном пути. - person larryzhao; 05.05.2015