"NoMethodError: undefined method `object' for #<Tenant:blahblah>" Error

"NoMethodError: undefined method `object' for #<Tenant:blahblah>" Error

您好,我遇到了 "NoMethodError: undefined method `information_requisition' for #" 错误,我似乎无法将此模型与我的用户相关联。我的 information_requisition 模型代码是:

class InformationRequisition
  include Mongoid::Document
    belongs_to :user
    belongs_to :admin
    has_many :reports

我的用户模型是:

class User
  include Mongoid::Document
  mount_uploader :avatar, AvatarUploader
  has_one :report,
  has_many :information_requisitions, dependent: :destroy
  has_many :admin
  has_one :bill, dependent: :destroy

当我尝试在仪表板上部分显示创建表单时,我不断收到错误消息。这是我的仪表板控制器上显示错误的地方:

class Tenants::DashboardsController < 应用程序控制器 before_filter :authenticate_tenant!

  def show
    @dashboard = current_user
    @bill = current_user.bill || current_user.build_bill
    @information_requisition = current_user.information_requisition || current_user.build_information_requisition
  end

我的information_requisition好像与用户无关。它一直给我 "NoMethodError: undefined method `information_requisition' for #" 错误。知道我做错了什么吗?

A current_user 只能访问 information_requisitions(复数),因为它是一个 has_many 关联。

如果 @information_requisition 是单数,您必须在复数后添加 .first 以获得第一个。但我猜你真的想使用 first_or_initialize:

def show
    @dashboard = current_user
    @bill = current_user.bill || current_user.build_bill
    @information_requisition = current_user.information_requisitions.first_or_initialize
end