ruby on rails 3-访问ActiveRecord id时,对象#id将被弃用



可能重复:
Rails主键和对象id

我的Event型号中有以下代码

  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正在抛出警告

警告:对象#id将是不赞成;使用对象#Object_id

当我将event.id更改为event[:id]时,我得到了一个错误

符号作为数组索引

event = Event.where("upper(name) = ?", i.upcase);

返回一个集合(从技术上讲,是集合的代理),而不是ActiveRecord对象。

尝试:

events = Event.where("upper(name) = ?", i.upcase)
event = (events.blank? ? nil : events.first)

相关内容

  • 没有找到相关文章

最新更新