2016-03-05 40 views
0

我是新來的大禮包也仍然在學習Rails的施普雷商貿 - 編輯用戶對象屬性

我不完全明白,我怎麼可以添加新的屬性,施普雷::用戶對象,這樣我可以設置向註冊到我的網站的用戶提供更多數據。

按照不那麼清晰的文檔,我知道我應該創建一個User類,並添加喜好:

class User < ActiveRecord::Base 
    preference :hot_salsa, :boolean 
    preference :dark_chocolate, :boolean, :default => true 
    preference :color, :string 
    preference :favorite_number, :integer 
    preference :language, :string, :default => "English" 
end 

但我不知道我應該在哪裏保存此文件或如何命名它根本就沒有。

我在正確的道路上嗎?

+1

恕我直言這部分是有據可查的。 https://guides.spreecommerce.com/developer/logic.html#extending-classes 您可以創建migraton,eval類並更改或擴展視圖,如@Saurabh提及的鏈接 – Jakub

回答

1

你可以使用裝飾器來做到這一點。您可以創建裝飾器爲app/models/spree/user_decorator.rb並在其中添加您的代碼。

Spree::User.class_eval do 
    preference :hot_salsa, :boolean 
    preference :dark_chocolate, :boolean, :default => true 
    preference :color, :string 
    preference :favorite_number, :integer 
    preference :language, :string, :default => "English" 
end 

查找超文本或擴展代碼here的文檔。

0

您添加的字段不應該用作首選項,因爲首選項的值會被序列化並存儲起來,如果您想對這些字段執行一些過濾/查詢,那麼這將不會有用。

相反,這些應該是用戶模型(spree_users表中的列)的

  • 單獨屬性。
  • 單獨的新表的屬性可以是spree_user_detailsbelongs_to :user),其中用戶模型具有has_one關聯。