具有 Active Record RoR 的基于动态属性的查找器,Model.find_by_ 不起作用

发布于 2024-12-02 04:01:48 字数 1299 浏览 1 评论 0原文

我是 RoR 的新手,

环境:Rails 3.09 和 ruby​​ 1.9.2p290 安装在 leopard 上,

我正在仔细遵循 Michael Hartl (http://ruby.railstutorial.org/) 的教程。 在第 7 章,我们应该使用控制台测试这段代码:

$ rails console --sandbox
>> User.create!(:nom => "Michael Hartl", :email => "[email protected]",
?>              :password => "foobar", :password_confirmation => "foobar")
>> user = User.find_by_email("[email protected]")
>> user.has_password?("foobar")
=> true 

我的问题是使用基于属性的查找器 find_by_(属性的名称)。在我的示例中,通过电子邮件查找。

实际上,rails 似乎不接受 find_by_ 作为方法。仍然使用上面的示例,在 user.has_password?("foobar") 行处,rails 返回错误: NoMethodError:未定义的方法。方法 has_password?在我的模型中定义良好。

我已经检查了rails 3.0.9 api的文档,如果我使用这种方式:

>> user = User.where(:email => "[email protected]")

那么它就可以工作......

所以我想知道为什么我不能使用find_by_方法?其他查找方法也有效,例如:find.first、find.last 等。
谢谢你帮助我 法比安

I am a newby with RoR,

Environment : Rails 3.09 and ruby 1.9.2p290 installed on leopard

I am following carefully the tutorial of Michael hartl (http://ruby.railstutorial.org/).
At the chapter 7, with the console we should test this code :

$ rails console --sandbox
>> User.create!(:nom => "Michael Hartl", :email => "[email protected]",
?>              :password => "foobar", :password_confirmation => "foobar")
>> user = User.find_by_email("[email protected]")
>> user.has_password?("foobar")
=> true 

My problem is with the use of the attribute based finders , find_by_(the name of the attribute). In my example find_by_email.

Actually, rails doesn't seem to accept find_by_ as a method. Still with the example above, at the line user.has_password?("foobar") rails returns the error :
NoMethodError: undefined method. The method has_password? is well defined in my model.

I have checked the doc of the api of rails 3.0.9, and if I use this way :

>> user = User.where(:email => "[email protected]")

then it works....

So I am wondering why I can't use the method find_by_ ? Other find methods work ex: find.first, find.last, etc..
Thank you to help me
fabien

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独自唱情﹋歌 2024-12-09 04:01:49

实际上,查找器在模型文件中工作,但不在控制台(开发环境)中工作。
奇异的
法比安

Actually the finder works within the model file but not within the console (development environment).
bizarre
fabien

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文