с текстом:
<%= f.hidden_field :tracking_info, value: params[:ti] %>
Формируется такой html который формируется:
<input value="{"roistat_id"=>"12345", "utm_sourсe"=>"Instagram"}" type="hidden" name="user[tracking_info]" id="user_tracking_info">
И мне нужно сохранить из input вот это:
"{"roistat_id"=>"12345", "utm_sourсe"=>"Instagram"}" в модель user в формате hash или jsonb.
Миграция
add_column :users, :tracking_info, :jsonb, default: '{}'
Но это поле сохраняется как string с такими штуками: «\»
pry(main)> user.tracking_info
=> "{\"roistat_id\"=>\"12345\", \"utm_sourсe\"=>\"Instagram\"}"
user.tracking_info.class
=> String
Как сохранаять в JSON или hash в этом случае?
Форму менять нужно или обрабатывать поле при сохранении?
When the source is a Ruby String, JSON.generate returns a String containing a JSON string (with double-quotes): JSON.generate('A string') # => '"A string"'
https://ruby-doc.org/stdlib-3.0.2/libdoc/json/rdoc/JSON.html
Обсуждают сегодня