0

我正在关注 Michael Hartl 的 Rails 教程。我在我必须编写代码以更改标题链接的部分,这取决于用户是登录还是注销。

当我将代码添加到 _header 部分时,甚至是从教程本身复制的,当我重新加载主页时,我会得到那个红色的错误页面。它显示以下消息:

undefined method `find_by' for #<#<Class:0x5b76358>:0x5b75b60>

然后它突出显示代码

<% if signed_in? %>

这是添加到 _header 部分的代码的一部分。

到目前为止,我完全按照教程中显示的代码进行了编码。顺便说一句,我正在使用 Rails 4……所以我们从使用旧 Rails 版本中得到的“find_by”方法问题在这里不是这种情况。

提前致谢!

4

2 回答 2

0

看到从材料中学习是好的,但我建议你不要复制整个东西,因为它大大减少了学习量。说 find_by 不是所有版本的 rails 模型的直接方法,如果您想查找,id您可以使用find(id_value),如果您想基于特定列查找,那么您应该使用find_by_columnname(column_value)它将起作用。如果您需要更多说明或错误仍然存​​在,请询问。

于 2013-08-14T13:05:17.090 回答
0

两种解决方案:

  1. 使用 Rails 4 而不是 Rails 3.2(我认为你现在使用的)——find_by方法是在 Rails 4 中引入的,Michael Hartl 的教程是为 Rails 4 编写的。

  2. 在使用方法的地方使用动态查找器find_by,例如:

    @current_user ||= User.find_by_remember_token(remember_token)
    

我个人建议解决方案1。

于 2013-08-14T13:27:06.333 回答