2017-08-28 11 views
0

II'm mit Rails 5. Ich möchte nach einem Modell basierend auf einem User_id Feld suchen. Meine Tabelle sieht wie folgt ausWarum bekomme ich in Rails 5 die undefinierte Methode find_by, wenn ich auf der Grundlage eines seiner Felder nach einem Modell suche?

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 

aber wenn ich versuche, ein Modell zu sehen, wie so

@user_notification = UserNotification.find_by_user(current_user) 

ich den Fehler

undefined method `find_by_user' for UserNotification:Class 

Was die einfache (Rails) Art und Weise ist zu sehen mein Feld hoch?

Antwort

1

find_by_user ist keine integrierte Methode in Schienen, Sie müssten es in Ihrem Modell definieren.

Was Sie verwenden sollten, um einen Datensatz von seiner ID zu finden, ist einfach Find. Es wird einen Datensatz zurückgeben, der der eingegebenen ID entspricht, sofern sie existiert.

Ex:

@user_notification = UserNotifaction.find(1) 

Und von einem bestimmten Bereich, wie zum Beispiel einer individuellen ID zu finden, verwenden Sie find_by

@user_notification = UserNotifaction.find_by(custom_id: 1) 
Verwandte Themen