Luc*_*ade 1 ruby ruby-on-rails rails-console ruby-on-rails-5
当我这样做时在 Rails 控制台中
u = User.where(id: 1)
"he find the user with id = 1, but then"
u.email
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
NoMethodError: undefined method `email' for #<User::ActiveRecord
Run Code Online (Sandbox Code Playgroud)
为什么 rails 控制台总是在寻找方法而不是属性?如何查看特定属性?
我这样做是因为我在应用程序中有一个方法可以通过 user_id 查找协调器,就像这样
user_id = current_user.id
coordinator = Coordinator.where(user_id: user_id)
course_id = coordinator.course_id
Run Code Online (Sandbox Code Playgroud)
where返回一个ActiveRecord::Relation对象,它是一个数组。 email只会存在于单个对象上。试试吧User.find()。否则,尝试User.where().first取回单个对象。
编辑:正如评论者指出的那样,您可能更喜欢使用该find_by()方法而不是where在这种特殊情况下。