[英]Object#id will be deprecated warning when accessing ActiveRecord ID [duplicate]
可能重复:
Rails 主键和 object id
我的Event
model 中有以下代码
def event_tokens=(ids)
events = ids.split(',')
allowed_events = []
events.each do |i|
i = i.strip
event = Event.where("upper(name) = ?", i.upcase);
if event.present?
allowed_events << event.id #line w/ error
else
print "this doesnt exist, add in staging table " + i.to_s
end
end
self.event_ids = allowed_events
end
上述代码中的event.id
正在引发警告
警告:Object#id 将被弃用; 使用对象#object_id
当我将event.id
更改为event[:id]
时出现错误
符号作为数组索引
event = Event.where("upper(name) = ?", i.upcase);
...返回一个集合(从技术上讲,是集合的代理),而不是 ActiveRecord object。
尝试:
events = Event.where("upper(name) = ?", i.upcase)
event = (events.blank? ? nil : events.first)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.