你好老鄉施普雷用戶,Spree_auth_devise寶石與設計
我想了解多一點關於spree_auth_devise寶石與狂歡的作品。如果我已將Devise設置爲用戶身份驗證,那麼我是否還需要這個?它將我現有的Devise用戶模型與其用戶類集成在一起,給我帶來了一些問題。我已經多次閱讀文檔(鏈接here)
遵循狂潮指南,我修改了spree.rb文件,以便它引用我的用戶類。應用程序/配置/初始化/ spree.rb:
Spree.user_class = "User"
Rails.application.config.to_prepare do
require_dependency 'spree/authentication_helpers'
end
我然後跑遷移到必要的大禮包列添加到我的用戶表。
class AddSpreeFieldsToCustomUserTable < ActiveRecord::Migration
def up
add_column "users", :spree_api_key, :string, :limit => 48
add_column "users", :ship_address_id, :integer
add_column "users", :bill_address_id, :integer
end
end
它遷移得很好。服務器開始,但是當我瀏覽到我安裝狂歡,我得到這個錯誤:#User
未定義的方法`last_incomplete_spree_order」:0x007fb1e51824c0
原來,Spree.user_class我已經改爲「當我添加spree_auth_devise時,由於某種原因,用戶「會變回Spree :: User。我在我的rails控制檯中驗證了這一點。所以這是有道理的,爲什麼我得到這個錯誤,因爲所有這些Spree方法是由Spree用戶類定義的。
當我刪除spree_auth_devise gem時,突然一切正常,我的Spree.user_class正確定義爲我設置它(「用戶」)。
所以我想我會垃圾那個寶石,繼續我的生活。但顯然如果他們沒有安裝spree_auth_devise gem,讓其他人拉我的回購會導致Spree遷移中的問題。所以我不得不告訴他們爲遷移添加它,然後在遷移完成時再次刪除它。
還發現在spree_auth_devise gem中設置用戶類的代碼。我害怕在這裏改變它。
spree_auth_devise/lib中/大禮包/ auth /中engine.rb:
initializer "spree_auth_devise.set_user_class", :after => :load_config_initializers do
Spree.user_class = "Spree::User
end
綜上所述:
到底爲什麼要用這種寶石?我怎樣才能保留它,但改變它,以便它知道我的用戶類?謝謝。
嗨,非常感謝你的回覆。我一直懷疑是這種情況,但是害怕跳躍並刪除這些遷徙。我現在要試一下,看看我能否部署到Heroku。 – Haymaker87 2014-12-05 03:41:56