将对象的实例调用到另一个控制器中 rails

Calling an instance of an object into another controller rails

我有一个可以正常呈现的报告对象,但是我有一个 reportapproval 对象,我想将其传递给报告视图,这样我就可以 运行 在报告视图中进行计算。每个用户 has_one 报告,每个报告都有多个报告批准。我如何调用特定的 reportapproval 并将该实例发送到报告控制器或视图。这是我的报表控制器。

class Users::ReportsController < ApplicationController
  def show
      @report = Report.find(params[:id])
      authorize @report
  end
end

我试过了

@reportapproval = Reportapprovals.where(user_id: @report.user_id).first

在显示方法中,但 ReportController 无法识别 Reportapproval。

如何将实例传递给视图?

我觉得你可以做到

@reportapproval = @report.reportapprovals.first

您可以在 show 方法本身中获取 reportapprovals 记录,您可以在视图 reports/show.html.erb

上访问 @report@reportapproval
class Users::ReportsController < ApplicationController
  def show
    @report = Report.find(params[:id])
    @reportapproval = @report.reportapprovals.first
    authorize @report
  end
end