Ich arbeite an meinem ersten Rails-Projekt und habe ein kleines Problem. Ich würde jede Hilfe sehr schätzen. Ich möchte alle ausstehenden Freundschaftsanfragen für einen aktuellen Benutzer mit jedem Iterator anzeigen. Mein Controller:Schienen: Wie werden alle ausstehenden Freundschaftsanfragen angezeigt?
class FriendRequestsController < ApplicationController
before_action :set_friend_request, except: [:index, :new, :create]
def index
@incoming = FriendRequest.where(friend: current_user)
@outgoing = current_user.friend_requests
end
def new
@friend_request = FriendRequest.new
end
def create
friend = User.find(params[:friend_id])
@friend_request = current_user.friend_requests.new(friend: friend)
if @friend_request.save
redirect_back(fallback_location: root_path), status: :created, location: @friend_request
else
render json: @friend_request.errors, status: :unprocessable_entity
end
end
Wenn ich so etwas wie ein Code unten versuchen, funktioniert es irgendwie, die bedingte Anweisung funktioniert, wie es sollte, aber ich weiß, es ist eine schreckliche Art und Weise, damit es funktioniert, so möchte ich nutzen @incoming seit es definiert ist.
<% if FriendRequest.where(friend: current_user).present? %>
<% ?.each do |request| %>
<li><%= ? %></li>
<% end %>
<% else %>
You don't have any friend requests
<% end %>
Aber wenn ich versuche, so etwas wie:
<% if @incoming.present? %>
Die bedingte Anweisung funktioniert nicht richtig, und es gibt ‚Sie haben keine Freundschaftsanfragen‘, auch wenn der aktuelle Benutzer ein ausstehendes hat Frage von einem Freund. Ich verstehe noch nicht genau, wie alles in RoR funktioniert, also wäre ich dankbar für eine Erklärung.
Hm, '@ incoming.present?' _should_ work. Hast du vielleicht einen Tippfehler gemacht? Versuchen Sie auch '@ incoming.exists?' (Es ist eine etwas andere Überprüfung) –
Sind Sie sicher, dass der HTML-Code, den Sie geschrieben haben, in app/views/friend_requests/index.html.erb liegt? –
@ShabiniRajadas danke. Das war das Problem, ich hatte versucht, es in einem Navbar Dropdown zu tun (was ich in meinem Post hätte erwähnen sollen), nach Ihrem Vorschlag habe ich den Code von max in app/views/friend_requests/index.html.erb verwendet und es funktioniert einwandfrei . Gibt es einen Weg, um es in meiner Navbar arbeiten zu lassen? –