Derzeit, wenn eine Person auf die link_to
klickt, werden sie zur vorherigen oder nächsten Herausforderung gebracht.Nächste und vorherige durch @ Benutzerobjekt?
Aber wie kann link_to
arbeiten, wo nur @user
`s Herausforderungen enthalten sind?
Ansicht
<% if @challenge.previous %>
<%= link_to 'Prev', challenge_path(@challenge.previous), class: "footer-left", style: "color: white; font-style: normal;" %>
<% else %>
<%= link_to 'Home', root_url, class: "footer-left" %>
<% end %>
<% if @challenge.next %>
<%= link_to 'Next', challenge_path(@challenge.next), class: "footer-right" %>
<% else %>
<%= link_to 'Home', root_url, class: "footer-right" %>
<% end %>
Modell
def next
Challenge.where("id > ?", id).first # I get nil error for... Challenge.find_by(user_id: @user.id).where("id > ?", id).first
end
def previous
Challenge.where("id < ?", id).last # I get nil error for... Challenge.find_by(user_id: @user.id).where("id > ?", id).last
end
Ich weiß @user
im Modell nicht funktioniert, aber ich benutze es nur als ein Beispiel für den Versuch, das bekommen User
, zu deren Herausforderungen sie gehören.
Gibt es eine 'has_many'-Beziehung zwischen Benutzer und Challenge? – mysmallidea
Funktioniert es jemals oder nur einmal, wenn Sie die letzte Herausforderung erreichen –
'@ user.challenges.where ('id>?', @ Challenge.id) .first 'sollte die Challenge mit der nächst höheren ID zurückgeben, unter der Annahme, dass a Benutzer hat viele Herausforderungen. – Stefan