0
Rails和SQL的新手和我試圖訪問我的應用中的關聯。使用SQL在Rails中查找活動記錄關聯
我有一個行程網絡應用程序,用戶可以下載並下載行程。作爲這個過程的一部分,他們可以用他們的想法留下評論。我要檢討的所有者能夠編輯或思想後刪除她的回顧如果需要的話,但下面的活動記錄協會的返回@ itinerary.reviews.user_id錯誤:
undefined method `user_id' for #<Review::ActiveRecord_Associations_CollectionProxy:0x007fb969392978>
裏面我itineraries_helper:
def user_is_reviewer?
@itinerary = Itinerary.find(params[:id])
!!current_user.id == @itinerary.reviews.user_id
end
筆者認爲:
<div class = "review-container">
<h2>What Travelers Thought</h2>
<% if @itinerary.reviews.count > 0 %>
<% @itinerary.reviews.each do |review| %>
<div class = "reviews">
<div class = "star-rating" data-score= <%= review.rating %> ></div>
<p>
<%= review.comment %>
</p>
<% if user_is_reviewer? %>
<% link_to "Edit", edit_itinerary_review_path(@itinerary, @review) %>
<% end %>
<% end %>
</div>
問題:
- 爲什麼Review.first.user_id工作,但不是itineraries.reviews.user_id
- 什麼SQL命令將實現我在找什麼?
- 如果我可以使用SQL,可以學習更多的SQL資源嗎?如果不是,最好的方法是什麼?
哇 - 謝謝你這樣的清晰的解釋沙尼。爲了澄清,集合是一個數組,所以你不能從它訪問一個特定的ID?如果我做了itinerary.reviews.first.user_id怎麼辦? – morales257
集合是一個對象數組。你可以遍歷數組來訪問單個的對象屬性。您正嘗試訪問數組集合上的user_id。希望有所幫助 – Shani