как вызвать функцию на кнопку отправки? - PullRequest
1 голос
/ 11 апреля 2011

Я новичок на рельсах. У меня есть почтовый контроллер и почтовая таблица, которую я создал с помощью scaffold, в моей таблице есть столбец current_status, я хочу, чтобы при отправке формы статус устанавливался в соответствии с типом кнопки отправки, у меня есть две кнопки, одна из которых - «Сохранить и продолжить», для которой статус «in_progress», а другая - «Сохранить в черновике», для которой статус сохраняется как черновик. Помогите, пожалуйста, как мне это сделать?

Ответы [ 2 ]

1 голос
/ 25 августа 2011

Если вы не хотите использовать JavaScript, вы можете сделать что-то вроде этого:

Кнопки формы:

<div class="action">
  <%= submit_tag 'Save', :name => 'save_button' %>
  <%= submit_tag 'Continue', :name => 'submit' %>
</div>

Запишите названия каждой кнопки отправки.

В контроллере вы можете ссылаться на каждую из кнопок по отдельности, например,

params[:save_button]
params[:submit]

Затем вы можете включить определенную логику в метод создания для каждой кнопки, возможно, в операторе if / elsif / else.

1 голос
/ 25 апреля 2011

Я не уверен, что вы можете указать, какую функцию (я предполагаю функцию javascript?) Вы хотите вызывать с помощью генераторов форм rails.Rails довольно сильно связывает одну форму, одну кнопку (и все формы rails, кажется, используют одну и ту же функциональность автоматически сгенерированной формы).

Возможно, вы застряли (если вы делаете только rails) с выпадающим меню или что-то другое, решая, еслиэто сохранение или продолжение.

Теперь, если вы действительно хотите иметь условную кнопку, подобную этой, вы, вероятно, захотите взглянуть на создание формы с нуля (используя ajax, javascript и т. Д.), А не на то, чтобы rails создала ее для вас.Rails довольно опрятен, когда вы хотите делать действительно простые вещи ... но суть в том, чтобы договориться о конфигурации, поэтому, когда вы хотите проявить фантазию, это становится очень упрямым.

Edit: вы МОЖЕТЕ указать, какое действие контроллераВы хотите, чтобы форма вызывала, но это все еще один контроллер на форму.Чтобы иметь две разные возможности, вам нужно иметь две формы (что не похоже на то, что вы ищете?)

...