artsnail
@artsnail

Как правильно обновить postgresql массив в Rails?

Есть таблица, одно из полей массив
:string, array: true
использую form_for, для данного поля использую f.text_field
При создании нового объекта передаю в это поле данные в виде: {one, two}
Сохраняется массив.
Но при редактировании объекта в данное поле подставляется следующее значение: one two
После того, как я редактирую другое поле и сохраняю изменения, в поле с массивом передаётся значение: one two, в результате чего сохраняется пустой массив.
Что я делаю не так?
Может надо какой-то другой хелпер использовать, а не f.text_field?
  • Вопрос задан
  • 245 просмотров
Решения вопроса 1
Dem1
@Dem1 Куратор тега Ruby on Rails
Ruby on Rails developer
Можно и text_field, Нужно просто добавить дополнительные методы, Предположим, что у нас поле names

class User < ApplicationRecord
  def names_list
    names.join(', ')
  end

  def names_list=(new_value)
    self.names = new_value.split(/,\s+/)
  end
end


И соответственное где-то в форме, обновляем через запятую в данном случае, но это уже как вам захочется
<%= f.text_field :names_list %>

и не забудь поменять в контроллер
params.require(:user).permit(:names_list)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы