&#34; NoMethodError:未定义的方法`object&#39; ##tenant:blahblah>&#34;错误</房客:blahblah>

时间:2015-01-26 21:05:45

标签: ruby-on-rails-4 devise mongoid

您好我遇到错误&#34; NoMethodError:未定义的方法`information_requisition&#39;为#&#34;我似乎无法将此模型与我的用户联系起来。我的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

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

类租户:: DashboardsController&lt; ApplicationController的   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似乎与用户无关。它不断给我提供&#34; NoMethodError:未定义的方法`information_requisition&#39;为#&#34;错误。知道我错了吗?

1 个答案:

答案 0 :(得分:1)

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