2016-06-11 13 views
0

Das ist mein Code, der erste Teil ist das Problem, und der zweite funktioniert perfekt.RoR Aktiver Datensatz 'Where' funktioniert nicht richtig

def show 
    if @user.cooker? 
    @pushs = @user.pushs.where(taked_by = @user.id) 
    else 
    @pushs = @user.pushs 
    end 
end 

Nun der Code sagen, wenn ich einen Herd bin, möchte ich alle Push anzuzeigen, in dem die Variable: taked_by ist die gleiche ID als meine user.id

Und die zweite Par sagen dass, wenn ich kein Kocher bin, mein eigener Druck angezeigt wird.

+0

'wo (taked_by: @ user.id)'. – Ilya

Antwort

0

Do taked_by: @user.id oder :taked_by => @user.id

def show 
    if @user.cooker? 
    @pushs = @user.pushs.where(taked_by: @user.id) 
    else 
    @pushs = @user.pushs 
    end 
end 

Lassen Sie mich wissen, ob es funktioniert.

+0

Danke Kumar Abinash, nun gibt es keine Fehler mehr, aber die Funktion läuft nicht. Ich würde gerne Push anzeigen, wenn sein: taked_by == @ user.id. Hast du eine Möglichkeit das zu schreiben? –

+0

Nein, was es tut ist, speichert alle 'Pushs' in' @ Pushs' wo die Taked_by ist gleich zu @ user.id. Außerdem wird die Zeile nur bei @ user.cooker ausgeführt. ist "wahr". Sie können es in der Schienenkonsole versuchen, um zu überprüfen. – Kumar

+0

Oh, Ok, nun habe ich "@pushs = @ user.pushs.where (taked_by: @ user.id)" in "@pushs = Push.where (taked_by: @ user.id)" geändert. So sucht nun der ganze Push und nicht nur sein eigener Push. Vielen Dank für diese Erläuterungen. Ich wünsche ihnen einen wunderbaren Tag !! –

Verwandte Themen