Ограничение именованного маршрута Rails 2.3 для POST / GET

#ruby-on-rails #routes

#ruby-on-rails #маршруты

Вопрос:

Надеюсь, это очень легко сделать, но я нигде не могу найти никаких документов по нему (вероятно, потому, что мне не хватает правильных условий поиска). В любом случае…

Я хочу, чтобы два именованных маршрута использовали один и тот же путь. Отличительной чертой между ними будет то, что один будет принимать GETs, а другой — POSTs.

Ниже то, что у меня есть на данный момент. Я пытался использовать:method arg и a:via param, но ни то, ни другое не помогает. Я также пробовал «:requirements => {:method => :get}».

 map.show_current '/rounds/', :controller => :rounds, :action => :show, :method => :get
map.create '/rounds/', :controller => :rounds, :action => :create, :via => [:post, :put]
  

Любые предложения будут оценены, даже просто подходящий поисковый запрос.

Приветствия.

Комментарии:

1. Я думаю, что опция :conditions может помочь…

2. Что ж, как это часто бывает, я решил это вскоре после публикации этого вопроса. Вариантом, который я искал, был параметр:conditions. Итак, мои маршруты теперь выглядят следующим образом: map.show_current ‘/rounds /’, :controller => :rounds, :action => :show, :conditions => { :method => :get } map.create ‘/rounds/’, :controller => :rounds, :action => :create :conditions => { :method => :post }

Ответ №1:

Скопировал это из моего комментария, увидев, что на мой вопрос нет ответа.

Вариантом, который я искал, был параметр:conditions. Итак, мои маршруты теперь выглядят следующим образом:

 map.show_current '/rounds/', :controller => :rounds, :action => :show, :conditions => { :method => :get }
map.create '/rounds/', :controller => :rounds, :action => :create :conditions => { :method => :post }