Sto riscontrando qualche problema nell'aggiornamento di una colonna JSON delle rotaie in un modello.Postgres Colonna JSON che aggiorna le singole chiavi/attributi con il modulo
Ho un modello OrderItem con una colonna: opzioni con il tipo di dati postgres json.
Ho un modulo in cui sto solo cercando di aggiornare due attributi in quella colonna JSON. Tuttavia, quando eseguo l'azione di aggiornamento dal mio controller, reimposta l'intera colonna delle opzioni solo ai campi nel mio modulo anziché aggiornare semplicemente i due singoli attributi. è un insetto? Sono su Rails 4.2.1 e da quello che ho letto dovrebbe funzionare, e posso aggiornare manualmente i singoli attributi nella console di rails.
Nel mio controller:
def update
@order_item.update(order_item_params)
respond_with(:update)
end
private
def order_item_params
params.require(:order_item).permit(:product_id, :quantity, options:[:esp, :size])
end
La mia forma:
<%= f.fields_for :options do |option| %>
<%= option.label :size %>
<%= option.select :size, options_for_select((5..13), item.options["size"]) %>
<%= option.select :esp, options_for_select(["yes","no"], item.options["esp"]) %>
<% end %>
Quando questo modulo viene inviato non aggiorna i singoli attributi. Si ripristina l'intera colonna JSON a solo questi due attributi
Form Data
utf8:✓
_method:patch
order_item[quantity]:2
order_item[options][size]:5
order_item[options][esp]:no
In console posso aggiornare manualmente gli attributi facilmente ...
o = OrderItem.last
o.options["esp"] = "yes"
o.save
#PERSISTS!
si erano mai in grado di trovare una soluzione per questo? –