Я новичок в Ruby
и создаю простой администратор, используя ActiveAdmin
. У меня есть модель Question
, которую я хочу создать, заполнить и сохранить в базе данных, она имеет атрибут themes
(массив моделей Theme
). Когда пользователь создает новую запись, он не вводит темы вручную, а предоставляет некоторую строку, и система автоматически анализирует ее и находит или создает темы. Поэтому у меня есть такой код:ActiveAdmin получить значение из текстового поля формы
form do |f|
f.inputs "Questions Details" do
f.input :question, as: :string
f.input :autocomplete_themes, hint: "You should enter here multiple themes,
divide them with `,` or `;`"
end
f.actions
end
Это создает новое поле autocomplete_themes
для ввода строки и оно не»существует в модели Question
. Так что я хочу - это получить значение autocomplete_themes
как строку, а затем использовать split()
и мою собственную логику - но она дает ошибку.
before_create do |question|
array = []
puts "******"
puts :autocomplete_themes.text
themeTitles = :autocomplete_themes.split(",") #split(/,|;/)
for title in themeTitles do
theme = Theme.find_by(title: title)
theme = Theme.create(title: title) unless theme
array << theme
end
question.themes = array
end
Вопрос: как я могу получить autocomplete_themes
значение как строку? Спасибо!
Update: как я понял here - это похоже на случай похож, но есть проблема с установкой значения по умолчанию для пользовательских полей, но мне нужно, чтобы получить его значение из кода.