未初始化的常量和名称错误
Unitialized constant and name errors
我有一个包含 table 用户和 table 黑名单的数据库
在我的用户模型中,我想搜索用户 ID 是否存在于 legacy_logid 列的黑名单 table 中。
所以我定义
def blacklist_ip
if Blacklists.legacy_logid == user.id
Blacklists.value
else
nil
end
end
在我看来,这是一种非常简单的方法,可以要求检查 table 并查看用户 ID 是否在其中。
但是没有..
uninitialized constant User::Blacklists
那么我如何访问此模型中不同 table 中的记录。 legacy_logid 是 table 的 属性 - 我只想查找它。
如果我尝试使用 ::Blacklists,我会得到
uninitialized constant Blacklists
如果我尝试
def blacklist_ip
if Blacklist.legacy_logid == user.id
Blacklist.value
else
nil
end
end
我明白了
Undefined method `legacy_logid' for #<Class:0x00000006407e40>
我将黑名单定义为
class Blacklist < ActiveRecord::Base
end
这不是我想要查找的方法 - 它是 属性 但这似乎只能以不合逻辑的方式访问。
首先在 rails 中模型名称是单数形式而 table 是复数形式。
因此请确保您有一个 table users
和另一个 blacklists
以便您可以分别通过 User
和 Blacklist
模型访问它们。
您可以通过执行以下操作来查找 blacklists
中是否有给定用户 ID 的记录:
def blacklist_ip
Blacklist.where(legacy_logid: self.id)
end
我想你的模型之间的关系是 User
有很多 Blacklist
而 Blacklist
属于 User
.
如果您像下面这样定义 User
class,您将能够 return 将给定用户的所有 ip 列入黑名单:
class User < ActiveRecord::Base
has_many :blacklists
def blacklist_ip
self.blacklists
end
end
我有一个包含 table 用户和 table 黑名单的数据库
在我的用户模型中,我想搜索用户 ID 是否存在于 legacy_logid 列的黑名单 table 中。
所以我定义
def blacklist_ip
if Blacklists.legacy_logid == user.id
Blacklists.value
else
nil
end
end
在我看来,这是一种非常简单的方法,可以要求检查 table 并查看用户 ID 是否在其中。 但是没有..
uninitialized constant User::Blacklists
那么我如何访问此模型中不同 table 中的记录。 legacy_logid 是 table 的 属性 - 我只想查找它。
如果我尝试使用 ::Blacklists,我会得到
uninitialized constant Blacklists
如果我尝试
def blacklist_ip
if Blacklist.legacy_logid == user.id
Blacklist.value
else
nil
end
end
我明白了
Undefined method `legacy_logid' for #<Class:0x00000006407e40>
我将黑名单定义为
class Blacklist < ActiveRecord::Base
end
这不是我想要查找的方法 - 它是 属性 但这似乎只能以不合逻辑的方式访问。
首先在 rails 中模型名称是单数形式而 table 是复数形式。
因此请确保您有一个 table users
和另一个 blacklists
以便您可以分别通过 User
和 Blacklist
模型访问它们。
您可以通过执行以下操作来查找 blacklists
中是否有给定用户 ID 的记录:
def blacklist_ip
Blacklist.where(legacy_logid: self.id)
end
我想你的模型之间的关系是 User
有很多 Blacklist
而 Blacklist
属于 User
.
如果您像下面这样定义 User
class,您将能够 return 将给定用户的所有 ip 列入黑名单:
class User < ActiveRecord::Base
has_many :blacklists
def blacklist_ip
self.blacklists
end
end