Есть два способа сделать это вообще.
ИМХО, лучше всего просто добавить атрибут, который вы хотите установить в качестве скрытого поля, а затем написать некоторый 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
- это то, что отображается пользователю, что довольно неприятно связывает ваш контроллер с вашим представлением. Если в будущем вы захотите локализовать свое приложение, это скорее всего вас укусит.