2015-01-26 50 views
0

你好我有一個錯誤「NoMethodError:undefined method` information_requisition'for#」我似乎無法將此模型與我的用戶關聯。我對information_requisition模型代碼是:「NoMethodError:undefined method` object'for#<Tenant:blahblah>」錯誤

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 < 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似乎與用戶無關。它一直給我「NoMethodError:未定義的方法`information_requisition'for#」錯誤。任何想法我有什麼錯誤?

+2

你忘了's'嗎? current_user.information_requisition => current_user.information_requisitions – 2015-01-26 21:11:00

+0

堅持讓我檢查我知道這不是那麼簡單! – SupremeA 2015-01-26 21:19:58

+0

是的!你明白了,謝謝我不知道我是怎麼看不到的! – SupremeA 2015-01-26 22:16:53

回答

1

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 
+0

如果該用戶有多個information_requisition會不會首先顯示第一個,如果有很多?原因是問是因爲旁邊的部分增加了一個information_requisition,我有一個部分應該是一個索引,顯示所有用戶擁有的information_requisitions – SupremeA 2015-01-27 14:54:58

+0

當然用戶可以有多個information_requisition。您的代碼在用戶模型中顯示'has_many:information_requisitions'。 has_many的意思是有很多。請接受此答案併爲部分部分創建一個新問題。 – wintermeyer 2015-01-27 19:50:53

+0

感謝。如果我沒有弄清楚,我會在下面發佈一個關於索引的問題。 – SupremeA 2015-01-27 23:34:40

相關問題