Rails 控制台,如何查看对象属性

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)

我收到这个错误 导轨错误

Joh*_*ohn 5

where返回一个ActiveRecord::Relation对象,它是一个数组。 email只会存在于单个对象上。试试吧User.find()。否则,尝试User.where().first取回单个对象。

编辑:正如评论者指出的那样,您可能更喜欢使用该find_by()方法而不是where在这种特殊情况下。

  • 而不是`#where + #first` 最好使用`#find_by`。 (2认同)