加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – ActiveRecord ::显示而不是预期数据的关系代码

发布时间:2020-12-17 03:05:03 所属栏目:百科 来源:网络整理
导读:我正在尝试在我的主页上显示评论列表,同时显示每个评论的评分. 我想要一个逗号分隔的每个评论附带的不同评级列表(基于相关的review_id);评级是-5到5的整数.加载页面时我得到的是: Review 1. #ActiveRecord::Relation:0x007f9879749a50Review 2. #ActiveReco
我正在尝试在我的主页上显示评论列表,同时显示每个评论的评分.

我想要一个逗号分隔的每个评论附带的不同评级列表(基于相关的review_id);评级是-5到5的整数.加载页面时我得到的是:

Review 1. #<ActiveRecord::Relation:0x007f9879749a50>
Review 2. #<ActiveRecord::Relation:0x007f9879749a50>
Review 3. #<ActiveRecord::Relation:0x007f9879749a50>
Review 4. #<ActiveRecord::Relation:0x007f9879749a50>
Review 5. #<ActiveRecord::Relation:0x007f9879749a50>

当我想看到这个:

Review 1. 1,5,2,-3
Review 2. 2,-1
Review 3. 1,1,4,5
Review 4. -5,-2,-3
Review 5. 1,3,2

用户模型:

class User < ActiveRecord::Base
  attr_accessible :name,:email,:password,:password_confirmation,:remember_me,:ratings_attributes,:reviews_attributes

  has_many :reviews,dependent: :destroy
  has_many :ratings,:through => :reviews,dependent: :destroy
  accepts_nested_attributes_for :ratings,allow_destroy: true
  accepts_nested_attributes_for :reviews,allow_destroy: true
end

评论模型:

class Review < ActiveRecord::Base
  attr_accessible :content,:priority,:ratings_attributes
  belongs_to :user
  has_many :ratings
end

评级模型:

class Rating < ActiveRecord::Base
  attr_accessible :rating_count,:review_id,:timestamp,:user_id

  belongs_to :user
  belongs_to :review
end

家庭控制器:

class HomeController < ApplicationController

  def index
    @reviews = current_user.reviews.order("position")
    @ratings = Rating.where(params[:review_id])
    @ratings_list = Rating.find(:all)
  end

index.html.erb

<h1>Listing reviews</h1>
<p id="notice"><%= notice %></p>
<br />
  <div class="span12">

<ul id="reviews" data-update-url="<%= sort_reviews_url %>">
    <% @reviews.each do |review| %>
        <%= content_tag_for :li,review do %>
            <span class="handle">[drag]</span>
            <%= link_to h(review.content),review %>

            <!-- this is where i want a comma separated list of the different ratings attached to each review; ratings are integers of -5 to 5. -->
            <%= @ratings %>

        <% end %>
    <% end %>
</ul>

<br />
  </div>
<!-- for debugging that i'm actually getting through to the ratings data -->
<%= @ratings_list %>
<br />

<%= link_to 'New Review',new_review_path %>

对于我的生活,我无法弄清楚我是在控制器中做错了什么,还是在html中.

每个评论旁边显示的所有内容都是这样的:

#<ActiveRecord::Relation:0x007f987a9d7618>

提前谢谢……如果你在乎,我在外面工作,一只虫子就飞了起来.

解决方法

您可能正在渲染实际的审阅对象,而不是它们的字符串表示.这样的东西应该在视图中起作用:

<%= @ratings.map { |rating| rating.rating_count }.join(",") %>

这会将您的评级集合转换为rating_counts的集合,然后使用逗号连接它们.

虽然:)我无法帮助修复鼻子:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读