我有一个奇怪的问题。Rails 3- find_by不工作
我有两个模型用户和他们之间有多对多关系的角色。 我想在用户的角色集合中过滤名称为'Administrator'的角色。
在模型验证码
puts self.roles.to_s
打印到屏幕: [角色ID:1,名称: “管理员”,created_at: “2012-01-22 21点55分45秒”,的updated_at: “2012-01-22 21点55分45秒”]
但这个代码
puts self.roles.find_by_name('Administrator').to_s
不打印任何东西。而这一个:
puts self.roles.find_by_name('Administrator').nil?
打印真实!
为什么我的find_by_name方法不工作? 我在控制台上试了一下,效果很好。
我的代码片段如下:
puts self.roles.to_s
puts self.roles.find_by_name('Administrator').to_s
puts self.roles.find_by_name('Administrator').nil?
和输出如下:
[Role id: 1, name: "Administrator", created_at: "2012-01-22 21:55:45", updated_at: "2012-01-22 21:55:45"]
<none>
true
我在做什么错?它必须是一些愚蠢的东西。 此代码位于验证方法中,因此它在用户保存之前执行。
你是否在两个表中都有一个名称列? – jstim
当你调用'find_by_name'时,数据库中的新角色是什么? –
对这两个问题都可以 – Tony