如何解决#<mark:0x000055d9d09442d8>的方法丢失或方法未定义`upsert'
我正在从需要不时更新的 TXT 文件中植入数据库,并想尝试新的 upsert 功能。
然而,凌晨 4 点我几乎无法阅读屏幕,并认为我在做一些明显或愚蠢的事情,以树林换树木的东西?
我重新阅读了文档并更新了 rails 版本,但是当我在对象上调用 upsert 时出现错误
NoMethodError: undefined method `upsert' for #<Trademark:0x000055a4c3234bd8>
/home/ubuntu/.rvm/gems/ruby-2.7.0/gems/activemodel-6.1.2/lib/active_model/attribute_methods.rb:469:in `method_missing'
我已将 RAILS 更新到 6.1.2。 Ruby 为 2.7.0,DB 为 PG 1.2.3
列 :mark_number 在数据库中具有唯一索引。
这是我的种子代码,我正在关注文档。
l 对象是上传的 txt 文件,我逐行遍历并拆分成数组。
t = mark.new
t.mark_hyperlink = l[1].split('"')[1].strip
t.mark_number=l[0].strip
puts t.mark_number
# Create bitstring of 45 classes
bitstring=""
(12..56).each do |i|
bitstring=bitstring + l[i]
end
puts bitstring
t.class_bitstring=bitstring
# also tried inserting like this,comes back with fail
#upsert(t,returning: nil,unique_by: :mark_number)
t.upsert
任何指针表示赞赏
解决方法
这是一个类方法,而不是实例方法。应该是这样的:
Trademark.upsert(attributes)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。