#ruby-on-rails
#ruby-on-rails
Вопрос:
Возможно ли отправить другой параметр вне данных формы в rails? Моя проблема в том, что я отрисовываю разные формы для разных классов и отправляю их в один и тот же метод create. Я хотел бы отправить класс с формой (как значение, а не как ключ в хэше). Что-то вроде параметра :type (который на самом деле не работает)
<%= form_for(@an_object, :url => { :controller => :a_controller, :action => :create },
:type => @an_object.class.to_s.underscore) do |f| %>
Сообщение post выглядит следующим образом:
{"commit"=>"Create Class of an Object",
"authenticity_token"=>"/iqu0A8/AocDT3HyjL5/ bKZiLkyr4FE71u/mc8Wx0Y=",
"utf8"=>"✓",
"class_of_an_object"=>{"name"=>"a name",
"description"=>"a description"}}
и у меня был бы "type" => "class_of_an_object"
, но непосредственно в хэше, а не в хэше «class_of_an_object».
Комментарии:
1. Вы хотите, чтобы параметр отправлялся в URL как параметр GET или в теле как параметр POST?
Ответ №1:
<%= form_for @an_object,
:url => { :controller => :a_controller,
:action => :create,
:type => @an_object.class.to_s.underscore } do |f| %>
И я предпочитаю использовать именованные маршруты
<%= form_for @object, :url => object_path(@object, :type => "whtever"), :html => {:method => :post} do |f| %>
Ответ №2:
Это работает для меня:
<%= form_for @foo, :url => foo_path(:type => "whatever"), :html => {:method => :post} do |f| %>