collection_radio_buttons из массива - PullRequest
0 голосов
/ 30 января 2020

Как выбрать значение из предварительно определенной коллекции в модели, используя 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

1 Ответ

1 голос
/ 30 января 2020

3-й и 4-й аргументы collection_radio_buttons указывают метод, используемый для извлечения значения и текста соответственно. Функция попытается вызвать [language_level, language_level].language_level для преобразования данных, потому что вы передаете массив массивов как коллекцию и :language_level для вызова каждого элемента в этом подмассиве.

Если вы не используете Если вы не хотите менять свою модель, вы можете попробовать изменить код так:

= f.collection_radio_buttons :lang_lvl, Language.language_levels, :first, :last
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...