私は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>
さらに、それは nil ではないと信じるようになりますが、ハッシュ値を参照することはできません。