繁体   English   中英

访问 ActiveRecord ID 时,Object#id 将被弃用警告 [重复]

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM