【发布时间】:2016-04-26 03:08:53
【问题描述】:
刚接触 Rails 和 SQL,我正在尝试访问我的应用程序中的关联。
我有一个行程网络应用程序,用户可以在其中下载行程。作为该过程的一部分,他们可以留下评论并附上他们的想法。我希望评论的所有者能够在需要时编辑或删除她的评论,但以下 Active Record 协会正在为@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 资源来了解更多信息?如果没有,有什么更好的方法?
【问题讨论】:
标签: sql ruby-on-rails sql-server