如何使用collection_radio_buttons?从模型中的预定义集合中选择值
我试过了
= f.collection_radio_buttons :lang_lvl, Language.language_levels, :language_level, :language_level #does not work
= f.select :lang_lvl, Language.language_levels, include_blank: true #works数据源在模型Language.rb中定义:
class Languages < ActiveRecord::Base
LANGUAGE_LEVELS = [:"A1/Elem", :"A2/PreInt", :"B1/Int", :"B2/UpperInt", :"C1/Adv", :"C2/Prof", :"A1/Beg"]
def self.language_levels
LANGUAGE_LEVELS.map { |language_level| [language_level, language_level] }
end
end发布于 2020-01-30 20:07:43
collection_radio_buttons的第三个和第四个参数分别指定了用于提取值和文本的方法。该函数将尝试调用[language_level, language_level].language_level来转换数据,因为您将数组数组作为集合传递,并为该子数组中的每个项调用:language_level。
如果不想更改模型,可以尝试将代码更改为:
= f.collection_radio_buttons :lang_lvl, Language.language_levels, :first, :lasthttps://stackoverflow.com/questions/59993235
复制相似问题