Быстрое предупреждение: я довольно новичок в Rails, и мои знания - это нечто вроде cookie-cutter-esque. Я знаю, как делать определенные вещи, но мне не хватает этого жизненно важного понимания того, почему они всегда работают.Как использовать Form_For для обновления атрибута хеширования в модели
В настоящее время у меня есть модель пользователя, в которой есть куча информации, такой как адрес, адрес электронной почты и т. Д. Кроме того, у нее также есть хэш, видимый. Ключи в этом хэше - это каждая из частей информации, и значение является либо истинным, либо ложным для того, хочет ли пользователь, чтобы информация была общедоступной. Хотя я не уверен, что это лучший способ пойти, я не могу думать ни о каком другом способе, кроме создания целого количества булевых переменных для каждого бита информации. Наконец, я сериализую: видимый для хранения в базе данных
Что бы я хотел, в моем представлении редактирования есть флажок рядом с каждым полем информации, которое представляет видимый атрибут. После прочтения множества других сообщений, связанных с этой темой и попыток многочисленных вариантов кода, я всегда получаю какую-то ошибку. Код, который выглядит наиболее интуитивно правильно мне выглядит следующим образом:
<%= form_for(@user, :id => "form-info-personal") do |f| %>
...
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.check_box :visible[:name] %>
Но я получаю сообщение об ошибке, говорящее о том, что символ не может быть проанализирован в целое число. Я не уверен, что этот синтаксический анализ даже пытается произойти, если только его просмотр: видимый как массив и не пытается использовать: name как индекс.
Я заранее извиняюсь, если этот вопрос тривиальный /, казалось бы, бессмысленный/недостающий жизненной информации/и т. Д. Любые советы, предложения, ссылки или то, что вам было бы очень полезно, даже если они соответствуют строкам «вы делаете это в корне неправильно, возвращайтесь и делайте это так».
-Nick
Держитесь подальше от сериализации. Это первая проблема, которую вы получили, но у вас будет больше проблем из-за сериализации. Добавление определенных столбцов не является ошибкой. – wanghq
@wanghq: Нет ничего плохого в сериализации (если вы готовите его правильно). –