gpt4 book ai didi

arrays - Rails - grouped_options_for_select

转载 作者:行者123 更新时间:2023-12-03 15:11:04 28 4
gpt4 key购买 nike

我在使用 grouped_options_for_select 使用选项组填充 Rails 中的选择框时遇到了一些困难.

我目前有 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

我的问题是:如何获取这 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>

food_controller.erb
@fruits = Fruit.all
@veggies = Veggies.all
@junk_food = JunkFood.all

# Then, I'd create the array here using the items above?

我知道我应该使用 grouped_items_for_select ,但我继续遇到一堆错误,我不确定这样做的正确方法。

最佳答案

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 ] }]]

可用于创建下拉列表:
select_tag 'Food', grouped_options_for_select(...)

或使用 form_helper:
f.select :food_attribute, grouped_options_for_select(...)

关于arrays - Rails - grouped_options_for_select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21522464/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com