我正在使用simple_form gem并且非常喜欢它的简单性.但是,尝试设置设置一个简单的单选按钮超出了我,因为我不断收到以下错误
“未定义的局部变量或方法`素食主义者’”
这是我到目前为止所拥有的
<%= f.collection_radio_buttons :diettype,[[vegan,'vegan'],[vegetarian,'vegetarian']]%>
2.使用我在simple_form之前使用的代码和更新/补丁方法,它将更新并保存用户需求
<%= f.label(:diettype,"Vegan") %> <%= f.radio_button(:diettype,"Vegan") %> <%= f.label(:diettype,"vegetarian") %> <%= f.radio_button(:diettype,"vegetarian")%>
3.这就是我想要重现的东西
<select> <option> vegan </option> <option> Vegetarian </option> </select>
注意 – 素食主义者和素食主义者是选择的选项,将存储在以下数据库列中:diettype.
解决方法
在控制器操作中,添加此行
def actionname @types = ModelName.select(:diettype).distinct .. end
哪里,
actionname是呈现视图的操作.
ModelName是模型的名称,其中包含diettype字段.
在您看来,替换
<%= f.collection_radio_buttons :diettype,'vegetarian']]%>
同
<%= f.collection_radio_buttons :diettype,@types,:diettype,:diettype %>
编辑:
<%= f.collection_radio_buttons :diettype,:diettype %>
以上行表示:
创建一个单选按钮集合,其中,
1st:diettype:变量将在您选择单选按钮时设置
@types:这个集合正在传递
第二名:diettype:正在选择的值
EDIT2
正如您指定的那样,您需要一个静态集合,并且您没有从数据库中获取任何值:
只需在视图中添加以下行,无需更改控制器:
<%= f.collection_radio_buttons :name,[['vegan',['vegetarian','vegetarian']],:first,:last %>