Rails,Formtastic:三个“提交”按钮,每个按钮设置不同的特定属性的值

时间:2012-04-03 02:11:06

标签: ruby-on-rails button formtastic

晚上好,

我想设置一个包含单个字段(名称)的表单,用户输入其名称,然后选择三个按钮之一。

这些按钮中的每一个都应同时设置特定的属性值,并提交表单。

一个人为的例子(“xxxx”是一个按钮):

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

这会保存用户的名字,然后是/ users_feeling属性。我不希望有一个用户感觉属性的单选框,然后是一个单独的提交按钮。

您可以提供的任何帮助都将受到赞赏!!

1 个答案:

答案 0 :(得分:3)

一般来说,有两种方法可以做到这一点。

恕我直言,更好的方法是简单地添加您想要设置为隐藏字段的属性,然后编写一些javascript以将其设置为按钮上的某些数据属性。像this这样的东西:

$('.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字符串也是显示给用户的内容,它将您的控制器与您的视图相结合。如果将来您想要本地化您的应用,这可能会让您感到厌烦。