我使用simple_form gem
https://github.com/plataformatec/simple_form创建一些输入字段;其中一个是单选按钮组,如下所示:
<%= f.input :due_date,:collection => ['Today','Tomorrow','In 3 Days'],:as => :radio %>
所以这个字段在数据库“due_date”中是一个Date.但是,不是让人们点击这个小日历,我们知道一般人们只想要这三个选项.而且我想使用单选按钮.但是,这一行的输出表明,如果我现在点击提交按钮,那么due_date参数将具有这里所述的值,即今天,明天或3天.以下是“今日”部分的输出HTML.
<span> <input class="radio optional" id="project_due_date_today" name="project[due_date]" type="radio" value="Today"> <label class="collection_radio" for="project_due_date_today">Today</label> </span>
我最想要的是:
<%= f.input :due_date,:collection_to_params => [Date.today,Date.tomorrow,Date.today+3],:display_value => ['Today',:as => :radio %>
所以当用户点击一个并提交时,我实际上得到一些ISO日期发送到服务器.
有任何想法吗?
谢谢!
解决方法
<%= f.input :due_date,:collection => [[Date.today,'Today'],[Date.tomorrow,'Tomorrow'],[Date.today+3,'In 3 Days']],:label_method => :last,:value_method => :first,:as => :radio_buttons %>
因此,您可以将数组数组传递给集合散列,然后还有两个可以传递的选项,用于指定此输入的VALUE和该输入的可见标签,并将其正确命名为label_method和value_method.单词方法是什么方法来调用所涉及的集合的单个项以检索标签或值.在数组的数组的情况下,array.first是我的值,array.last如果我的标签.因此上面的代码