Я хочу создать более одной формы с кнопкой отправки, чтобы каждая кнопка отправки выполняла разные действия/функции.
Как этого добиться? На данный момент все кнопки отправки принимают метод создания контроллера в качестве своей функции действия. Как переопределить это? Могу ли я дать имя каждой кнопке отправки и перенаправить действие каждой кнопки на другой метод в ее файле контроллера?
Как это сделать? Я использую рельс 3.0.1.
Rails: как создать более одной формы с кнопкой отправки, выполняющей разные функции?
comment
Чтобы уточнить: у вас есть несколько форм с кнопками отправки в каждой форме? Или у вас есть одна форма с несколькими кнопками отправки внутри?
- person codykrieger   schedule 07.11.2010
comment
Хм, в моем случае несколько форм в одной модели с кнопками отправки.
- person Hemanth   schedule 07.11.2010
Ответы (1)
Если вы используете вспомогательный метод form_for, я полагаю, что он использует new_record? для любого объекта, который вы ему передаете, чтобы определить правильное действие, на которое он должен указывать. Например:
<%= form_for @page do |f| %>
Если @page.new_record? оценивается как true, форма будет выполнять POST для метода create в PagesController. Однако, если он оценивается как false, он будет выполнять POST для метода обновления в PagesController.
Вы можете переопределить URL-адрес формы POST, выполнив что-то вроде:
<%= form_for @page, :url => { :action => "my_action" } do |f| %>
Это позволит вам отправить данные формы в пользовательское действие. Вам не нужно ничего менять в кнопках отправки.
Надеюсь, это поможет!
person
codykrieger
schedule
07.11.2010