2014-04-17 132 views
1

我用simple_form在我的表单代码有这样的:simple_form复选框采集与“其他”复选框

<%= f.input :fruit, as: :check_boxes, collection: ['Apple', 'Orange', 'Other'] %> 

所以我想和“其他”字段旁边关联的文字输入,让用户可以点击“其他”并输入他自己的水果名称。我该怎么做?
我试过它像f.input(...)作为集合项目之一,我也试过在do块中添加它,但它看起来都是完全不相关的。
我如何获得我想要的行为?谢谢。

回答

2

你可以这样做:

# view 
<%= text_field_tag :alternative_fruit %> 

# controller 
if params[:alternative_fruit].present? && params[:your_model_name][:fruit].select(&:present?).blank? 
    params[:your_model_name][:fruit] = params[:alternative_fruit] 
end 

这将覆盖水果的名称,如果你没有选择了替代的名称的复选框,如果你定义一个。

+0

谢谢。是的,我想过使用css自定义和控制器处理来添加不同字段的方法,但认为会有更好的方法。标签绑定到选择输入的选项,以便当我选择该选项或单击标签时,输入字段会自动选中。似乎需要相当一些低级编码来完成CSS/JS。 – konnigun

+0

如果它符合你的问题,你应该接受答案 – MrYoshiji