Сти и форма для проблемы с рельсами 3 - PullRequest
0 голосов
/ 23 декабря 2010

Это похоже на STI и form_for проблемы , но ответ, который там дается, не подходит для рельсов 3 и выдает предупреждение об устаревании. Однако, если я попытаюсь использовать новый синтаксис, я получу очень запутанный результат. Вот проблема.

Event_enquiry - это своего рода запрос, и в старом синтаксисе я бы сделал

<%= form_for( :event_enquiry, @enquiry, :remote => true, :url=>{:id=>@enquiry.id,:action=>:build_provider_versions}

Это создает ожидаемый путь / event_enquiries / 1 / build_provider_versions и в журнале я вижу Запуск POST "/ event_enquiries / 1 / build_provider_versions" для 127.0.0.1 в 2010-12-22 22:00:11 + 0000

но это выдает предупреждение об устаревании

DEPRECATION WARNING: Using form_for(:name, @resource) is deprecated. Please use form_for(@resource, :as => :name) instead. 

НО, хотя новый синтаксис

<%= form_for(  @enquiry, :as => :event_enquiry,:remote => true, :url=>{:id=>@enquiry.id,:action=>:build_provider_versions}

появляется, чтобы сгенерировать тот же маршрут, и в журнале я получаю точно такое же сообщение Запущено POST "/ event_enquiries / 1 / build_provider_versions" для 127.0.0.1 в 2010-12-22 22:01:58 +0000 маршрут явно не существует!

ActionController :: RoutingError (Нет подходящих маршрутов "/ event_enquiries / 1 / build_provider_versions"):

Я проходил туда-сюда и не мог видеть, что происходит. Кто-нибудь знает, что происходит?

Очевидно, что сейчас я рад вернуться к старому синтаксису, но у меня неприятное ощущение, что здесь что-то не работает ... или я просто глуп?

1 Ответ

0 голосов
/ 16 сентября 2011

просто добавьте

 :html => {:method => :put}
...