我一直在收到这样的消息: 警告:不推荐使用Object#id;使用Object#object_id 我从Ruby Object#id warnings and Active Record开始阅读并尝试了这些技巧但没有成功: 108-125-94-123:toptickets johnnygoodman$rail
警告:不推荐使用Object#id;使用Object#object_id
我从Ruby Object#id warnings and Active Record开始阅读并尝试了这些技巧但没有成功:
108-125-94-123:toptickets johnnygoodman$rails c Loading development environment (Rails 3.0.3) >> ticket_id = 8899 => 8899 >> ticket = Ticket.where(:number => ticket_id) => [#<Ticket id: 97, name: "Set Up API to Feed Customer Info into Bronto ", number: "8899", category_id: 15, created_at: "2011-01-31 21:24:29", updated_at: "2011-01-31 21:24:29", position: 20>] >> ticket.id (irb):3: warning: Object#id will be deprecated; use Object#object_id => 2175680980 >> ticket[:id] TypeError: Symbol as array index from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.3/lib/active_record/relation.rb:363:in `[]' from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.3/lib/active_record/relation.rb:363:in `send' from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.3/lib/active_record/relation.rb:363:in `method_missing' from (irb):4 >> ticket.class => ActiveRecord::Relation
我希望当我查询票证时,它将属于ActiveRecord :: Base类.我不知道该怎么做才能实现这一目标,或者我应该采取的方向.
目标:查询故障单,打印其ID.在上面的示例中,id的值应为97.
ticket = Ticket.where(:number => ticket_id)返回一个ActiveRecord :: Relation(在IRB中评估时,执行数据库查询并返回一个票证数组).所以ticket.id试图在整个票证阵列上执行.id,而不是一张真正的票证.也许你只想要第一个结果?
>> ticket = Ticket.where(:number => ticket_id).first >> puts ticket.id => 97