2016-11-23 109 views
1

我想使用回調修改管理產品控制器以爲每個用戶創建列表。在spree產品模型中使用裝飾器,我添加了「belongs_to:user」關係。在我的自定義用戶模型中,我添加了「has_many:products」關係,並且還將product_id和index product_id添加到了我的用戶數據表中。 我有這樣的:Rails 4 Spree調用回調「用戶xxxxx的未定義方法」

Spree::Admin::ProductsController.class_eval do 
create.before :user_products 

private 

def user_products 
    @user.objects.build params[object_name] 
end 
end 

object_name是從ResourceController繼承的功能。它返回一個包含當前對象名稱「product」的字符串。

但它不工作。我得到「用戶XXXXX未定義的方法對象」 看起來像我的協會不工作。我究竟做錯了什麼?提前致謝。

+0

什麼是你的自定義模型的名稱,與用戶和產品的關係? –

+0

我的自定義模型稱爲用戶。 在用戶模式,我有: 的has_many產品,CLASS_NAME: '狂歡::產品' 在施普雷產品型號,我有: 如果Spree.user_class belongs_to的:用戶,CLASS_NAME:Spree.user_class.to_s 其他 belongs_to的:用戶 – aminhs

+0

是你的關聯是錯誤的user_id應該在spree_products表中,而不是用戶表中的product_id –

回答

0

你的外鍵錯了,它應該是這樣的

class User < ActiveRecord::Base 
    has_many :products 
end 

Class Product < ActiveRecord::Base 
    belongs_to :user 
end 

產品表應該有user_id說明

這裏參考http://guides.rubyonrails.org/association_basics.html#the-has-many-association

enter image description here

+0

感謝祝願你的幫助。有用。 – aminhs

+0

歡迎@aminhs –

相關問題