Rails, Formtastic: три кнопки «отправить», каждая из которых устанавливает значение определенного атрибута по-своему - PullRequest
0 голосов
/ 03 апреля 2012

Добрый вечер,

Я бы хотел создать форму с одним полем (именем), где пользователь вводит свое имя, а затем выбирает одну из трех кнопок.

Каждая из этих кнопок должна одновременно устанавливать определенное значение атрибута и отправлять форму.

Придуманный пример («xxxx» - кнопка):

Name : _________
"Good" "Sad" "Tired"

Это спасет пользователяname, а затем yes / no / возможно для атрибута "users_feeling".Я не хочу иметь переключатель для атрибута чувства пользователя, а затем отдельную кнопку отправки.

Любая помощь, которую вы можете предоставить, будет принята с благодарностью !!

1 Ответ

3 голосов
/ 03 апреля 2012

Есть два способа сделать это вообще.

ИМХО, лучше всего просто добавить атрибут, который вы хотите установить в качестве скрытого поля, а затем написать некоторый JavaScript, чтобы установить для него, возможно, какой-либо атрибут данных на кнопке. Что-то вроде это :

$('.my_form button').click ->
  $('#my_hidden_field').val ($ @).data 'attribute-name'
  $('.my_form')[0].submit()

Другое - каждая кнопка отправки будет передавать свой value в качестве параметра при отправке формы. Вы можете обнаружить это в вашем контроллере rails, как и любое другое значение. Так что если у вас есть этот HTML:

<input type=submit name=feeling value=Good />
<input type=submit name=feeling value=Sad />
<input type=submit name=feeling value=Tired />

Тогда в вашем контроллере params[:feeling] должно удерживаться значение нажатой кнопки. Почему мне не особенно нравится это решение, так это то, что строка value - это то, что отображается пользователю, что довольно неприятно связывает ваш контроллер с вашим представлением. Если в будущем вы захотите локализовать свое приложение, это скорее всего вас укусит.

...