我有这样的模型,我想使用update_columns活动记录更新我的类型存储的列
我在堆栈中搜索了无数的答案,似乎没有太多关于类型存储的资源。
show.html.erb
<%= form_tag print_booking_path(@booking), method: 'post' do %>
<%= label_tag :name %>
<%= text_field_tag :name, '', class: 'form-control' %>
<%= label_tag :age %>
<%= text_field_tag :age, '', class: 'form-control' %>
<%= submit_tag "Print", class: "btn btn-default" %>
<%= link_to 'Cancel', '#', class: 'btn btn-default', data: { dismiss: 'modal' } %>
<% end %>bookings_controller
def print
@booking = Booking.find(params[:id])
if @booking.print_model(current_user, params[:name], params[:age])
render :print
else
render :print
end
end订舱模型
def print_model(user, name_test, age_test)
self.update_columns(name: name_test, age: age_test)
end预订模式下的打字机
typed_store :profile, coder: PostgresCoder do |i|
i.string :name, default: ""
i.integer :age, default: 0
end这个错误似乎是这样的
无法写入未知属性name
就像我想更新这个self.increment!(:年龄)
发布于 2019-06-17 08:21:20
我在这里做了一些测试,我不知道这是否有意义,但是在更新存储的情况下,所有类型存储的列都在数据库中的一个真正的列中(通常是散列或Json)。
所以,要做到这一点,最直接的方法就是把它放在括号里。
试着改变:
self.update_columns( name: name_test, age: age_test )至:
self.update_columns( profile: { name: name_test, age: age_test} )https://stackoverflow.com/questions/56626223
复制相似问题