我正在處理我的第一個Rails項目,並遇到一個小問題。我非常感謝任何幫助。 我想顯示使用每個迭代器的當前用戶的所有掛起的朋友請求。我的控制器:Rails:如何顯示所有待處理的朋友請求?
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
當我嘗試像下面一個代碼,它還挺工作,條件語句的工作,因爲它應該,但我知道這是使它工作一個可怕的方式,所以我想使用@incoming自定義。
<% if FriendRequest.where(friend: current_user).present? %>
<% ?.each do |request| %>
<li><%= ? %></li>
<% end %>
<% else %>
You don't have any friend requests
<% end %>
但是當我嘗試類似:
<% if @incoming.present? %>
條件語句不能正常工作,並有「你沒有任何好友請求」,即使當前用戶具有未決好友請求。 我不完全瞭解RoR中的所有工作,所以我會很感激解釋。
嗯,'@ incoming.present?'_should_ work。也許你會犯錯嗎?也可以嘗試'@ incoming.exists?'(這是一個稍微不同的檢查) –
你確定你寫的html代碼位於app/views/friend_requests/index.html.erb裏面嗎? –
@ShabiniRajadas謝謝。這是問題所在,我試圖在導航欄下拉菜單中執行此操作(我應該在後面提到的內容),在您的建議之後,我在app/views/friend_requests/index.html.erb中使用了max代碼,並且它可以正常工作。有沒有什麼辦法讓它在我的導航欄中工作? –