Dod*_*nas 3 arrays optgroup ruby-on-rails-4
我在使用选项组的Rails中填充选择框时遇到一些困难grouped_options_for_select
.
我目前有3个实例变量,我想将其添加到分组选择框的一个整个分组数组中.
例如,我有:
@fruits (which contains the object(s))
--- !ruby/object:Fruits
attributes:
id: 2
name: Banana
@veggies (which contains the object(s))
--- !ruby/object:Veggies
attributes:
id: 23
name: Celery
--- !ruby/object:Veggies
attributes:
id: 24
name: Carrots
@junk_food (which contains the object(s))
--- !ruby/object:Junk
attributes:
id: 11
name: Snickers
--- !ruby/object:Junk
attributes:
id: 12
name: Ice Cream
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何将这3个实例变量转换为分组选择,如:
<select>
<optgroup label="Fruits">
<option value="2">Banana</option>
</optgroup>
<optgroup label="Veggies">
<option value="23">Celery</option>
<option value="24">Carrots</option>
</optgroup>
<optgroup label="Junk">
<option value="11">Snickers</option>
<option value="12">Ice Cream</option>
</optgroup>
</select>
Run Code Online (Sandbox Code Playgroud)
food_controller.erb
@fruits = Fruit.all
@veggies = Veggies.all
@junk_food = JunkFood.all
# Then, I'd create the array here using the items above?
Run Code Online (Sandbox Code Playgroud)
我知道我应该使用grouped_items_for_select
,但我继续遇到一堆错误,我不确定这样做的正确方法.
Fle*_*r91 16
该grouped_options_for_select
方法确实是正确的.由于您尚未提供代码,因此应该生成所需的分组选项:
grouped_options_for_select [['Fruits', @fruits.collect {|v| [ v.name, v.id ] }],
['Veggies', @veggies.collect {|v| [ v.name, v.id ] }],
['Junk', @junk_food.collect {|v| [ v.name, v.id ] }]]
Run Code Online (Sandbox Code Playgroud)
哪个可用于创建下拉列表:
select_tag 'Food', grouped_options_for_select(...)
Run Code Online (Sandbox Code Playgroud)
或者使用form_helper:
f.select :food_attribute, grouped_options_for_select(...)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4871 次 |
最近记录: |