首页 > 解决方案 > 两个表的Ruby on Rails迭代,加载id

问题描述

学习Rails 我遇到了一个问题。我不知道如何加密两个表以及如何读取服务 ID。

第一个问题。我想显示服务/服务评级的平均值(rating.rate)以及服务表。

我有 2 张桌子:

class Service < ApplicationRecord
belongs_to :user
has_many :ratings, :foreign_key => “service_id”
end

class Rating < ApplicationRecord
belongs_to :user
belongs_to :service
end

并设计:

class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_many :services, :foreign_key => “user_id”
has_many :ratings, :foreign_key => “user_id”
end

我想列举 Service 和 Rating 并将它们显示在一张表中。我创建了一个变量:

@services = Service.left_outer_joins(:ratings) (I don't know if this is good, but it doesn't display an error)

我像这样迭代服务: <% @services.each do |service| %>这很好。不幸的是,我不知道如何用左外连接的评级拼写服务(这样评级在哪里,它会显示所有用户评级的平均值,如果是空值,它将是“无”)

第二个问题是添加新评级时,如何读取 service_id?来自设计加载的 user_id 在 create 方法中:

@service.user = current_user

最好的添加按钮应该位于哪里以从那里读取 service_id?索引或显示或其他什么?

我希望我很清楚地描述了我的问题并且没有混淆任何东西:)

标签: ruby-on-railsruby

解决方案


推荐阅读