2016-08-18 41 views
0

我正在爲電子商務網站編寫代碼,例如Aliexpress或亞馬遜,那裏有許多商店(賣家)可以擁有自己的產品等,簡而言之,我有一個用戶,擁有一家商店,並且該商店擁有一個帖子。我決定掛鉤後到店,因爲這將有助於保持與崗位相關的存儲和職位聯繫在一起的職位將包括更新客戶等Rails Associations error

這是代碼段產生錯誤:

def create 
@post = current_user.stores.posts.build(post_params) 

和錯誤是:

undefined method `posts' for <Store::ActiveRecord_Associations_CollectionProxy:0x000000051308f8> 

我已經改正了一切,包括的has_many:職位和belongs_to的:店面

我將不勝感激索姆Ë幫助:)

回答

0

你的問題是在這裏:

@post = current_user.stores.posts.build(post_params) 

具體來說,stores.posts,你問的posts而不必選擇了一個Store,你問的stores收集的posts,這是不正確的。你需要選擇一個商店,或者根據你真正想要的東西來改變你對事物建模的方式。

+0

嗨!我已將其更改爲stores.first,並返回了「未知方法帖子」錯誤 –

+0

發佈您的用戶,存儲和發佈對象,以便我們可以看到事情是否設置正確。 –

+0

如果你在Store上有'has_many:posts',它應該可以工作。 –

0

如錯誤所述,對於stores的收集,沒有方法postsposts僅適用於Store的一個實例。

您需要找到要爲其生成post的商店。類似的東西應該工作(取決於您的路線實施):

def create 
    @store = current_user.stores.find(params[:store_id]) 
    @post = @store.posts.build(post_params) 
end 
+0

是的,現在明白了......謝謝 –