2014-11-05 93 views
0

比方說,我有一個模型用戶有很多註釋。每個筆記都有字段user_name。我想我的筆記加工廠看起來是這樣的:Rails製造商 - 如何從關聯領域獲得價值?

Fabricator(:note, class_name: Note) do 
    user 
    content Faker::Lorem.paragraph(1) 
    user_name user.full_name 
end 

我試圖做的是設置user_name具有從已經存在的用戶FULL_NAME方法的價值。但我收到以下錯誤:

undefined method `full_name' for #<Fabrication::Schematic::Attribute:0x0000000a279c50> 

任何幫助,將不勝感激。

+0

以及它說,'full_name'方法不存在。我猜''user'是一個'Fabrication :: Schematic :: Attribute'對象,或許該方法存在爲一個類方法,但不存在於實例方法中? – Thermatix 2014-11-05 15:49:59

+0

'full_name'是用戶模型中的一個方法...並且我試圖訪問User對象......也許我需要將它作爲構造器聲明中的參數傳遞給它? – 2014-11-05 15:55:02

+0

當我創建一個新的僞造筆記時,我正在使用'Fabricate(:lead,user:myuser)',其中'myuser'是一個User對象...我期望在Fabricator聲明中'user'是一個User對象。 。 顯然不是。 – 2014-11-05 16:13:05

回答

3

找到了最終的documentation有一個屬性散列我可以使用:

Fabricator(:note, class_name: Note) do 
    user 
    content Faker::Lorem.paragraph(1) 
    user_name { |attrs| attrs[:user].full_name } 
end