首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法写入未知属性‘`example`’typed_store - Rails

无法写入未知属性‘`example`’typed_store - Rails
EN

Stack Overflow用户
提问于 2019-06-17 07:05:00
回答 1查看 182关注 0票数 0

我有这样的模型,我想使用update_columns活动记录更新我的类型存储的列

我在堆栈中搜索了无数的答案,似乎没有太多关于类型存储的资源。

show.html.erb

代码语言:javascript
复制
<%= 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

代码语言:javascript
复制
def print
    @booking = Booking.find(params[:id])
    if @booking.print_model(current_user, params[:name], params[:age])
      render :print
    else
      render :print
    end
  end

订舱模型

代码语言:javascript
复制
def print_model(user, name_test, age_test)
 self.update_columns(name: name_test, age: age_test)
end

预订模式下的打字机

代码语言:javascript
复制
typed_store :profile, coder: PostgresCoder do |i|
 i.string :name, default: ""
 i.integer :age, default: 0
end

这个错误似乎是这样的

无法写入未知属性name

就像我想更新这个self.increment!(:年龄)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-17 08:21:20

我在这里做了一些测试,我不知道这是否有意义,但是在更新存储的情况下,所有类型存储的列都在数据库中的一个真正的列中(通常是散列或Json)。

所以,要做到这一点,最直接的方法就是把它放在括号里。

试着改变:

代码语言:javascript
复制
self.update_columns( name: name_test, age: age_test )

至:

代码语言:javascript
复制
self.update_columns( profile: { name: name_test, age: age_test} )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56626223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档