【发布时间】:2017-10-23 11:37:00
【问题描述】:
当我这样做时在 Rails 控制台中
u = User.where(id: 1)
"he find the user with id = 1, but then"
u.email
我收到此错误:
NoMethodError: undefined method `email' for #<User::ActiveRecord
为什么 Rails 控制台总是在寻找方法而不是属性? 如何查看特定属性?
我这样做是因为我在应用程序中有一个方法可以通过 user_id 找到协调器,就像这样
user_id = current_user.id
coordinator = Coordinator.where(user_id: user_id)
course_id = coordinator.course_id
【问题讨论】:
-
u = User.where(id: 1).first -
你想要
User.find(1),而不是User.where(id: 1),见guides.rubyonrails.org/… -
coordinator = Coordinator.find_by(user_id: user_id) -
或
coordinator = Coordinator.find_by_user_id(user_id) -
谢谢大家,coordinator = Coordinator.find(some_id) 工作得很好!
标签: ruby-on-rails ruby ruby-on-rails-5 rails-console