我是 Ruby 新手,在大多数情况下它开始变得有意义,但后来我遇到了这个问题。
我使用以下方法搜索用户:
user = User.find_by_id(user_id)
我可以做到user.inspect
,它显示为:
#<User id: 1, username: "test_user", first_name: "test", last_name: "user">
但是,当我尝试这样做时:
user[:id]
我得到:
undefined method `[]' for nil:NilClass
我在看什么?
这是user.rb:
class User < ActiveRecord::Base
# Validations
validates :first_name, :last_name, :presence => true
validates :username, :uniqueness => {:allow_blank => true}
# Setup accessible (or protected) attributes for your model
default_fields = [:username, :first_name, :last_name]
attr_accessible *default_fields
# Instance Methods
def full_name
"#{first_name} #{last_name}"
end
end
此外,如果我这样做:
user.to_s
结果是:
#<User:0x007fdad09717f8>
这进一步让我相信它不是零,但我无法引用哈希值。