在Rails 5,为什么我根据其中一个字段搜索模型时得到未定义的find_by方法?

In Rails 5, why do I get undefined find_by method when I search for a model based on one of its fields?

我正在使用 Rails 5. 我想搜索基于 user_id 字段的模型。我的 table 看起来像这样

cindex=# \d user_notifications;
                               Table "public.user_notifications"
       Column       |  Type   |                            Modifiers
--------------------+---------+-----------------------------------------------------------------
 id                 | integer | not null default nextval('user_notifications_id_seq'::regclass)
 user_id            | integer |
 crypto_currency_id | integer |
 price              | integer | not null
 buy  

          | boolean | not null

但是当我尝试查找这样的模型时

 @user_notification = UserNotification.find_by_user(current_user)

我收到错误

undefined method `find_by_user' for UserNotification:Class

查找我的字段的简单(Rails)方法是什么?

find_by_user 不是 rails 中的内置方法,您必须在模型中定义它。

按 ID 查找记录的方法很简单 Find。如果存在,它将return一条与输入的id匹配的记录。

例如:

@user_notification = UserNotifaction.find(1)

要按特定字段(例如自定义 ID)查找,请使用 find_by

@user_notification = UserNotifaction.find_by(custom_id: 1)
@user_notification = UserNotification.find_by_user_id(current_user.id)