【发布时间】:2017-05-31 21:58:04
【问题描述】:
我有一个模型用户和角色。
您可以在此模型中看到 USER 属于 ROLE
class User < ApplicationRecord
belongs_to :role
# this method return true or false
def is_admin?
self.role.name == 'admin'
end
end
class Role < ApplicationRecord
has_many :users
end
user表中存在role_id
但是当我尝试访问 'is_admin?' rails 控制台中的方法,“未定义的方法 `is_admin?' for #" 出现
u = User.find_by_email('teste@teste.com')
=> #<User id: 2, email: "teste@teste.com", created_at: "2017-05-30 16:57:57", updated_at: "2017-05-30 17:00:44", role_id: 6>
u.is_admin?
NoMethodError: undefined method `is_admin?' for #<User:0x007fd5233c1ab8
我该怎么做?
【问题讨论】:
-
做一个
reload!再试一次? -
@wesley6j 是对的。详细来说,每次在模型中添加方法或更改数据库结构时,都需要在 Rails 控制台中运行
reload!以查看更改。 -
没什么变化,同样的错误发生@wesley6j
-
你的模型不应该是
class User < ActiveRecord::Base,是不是打错字了? -
或者你标记错了,你在 Rails 5..
标签: ruby-on-rails ruby