2013-04-30 66 views
0

對於那些定製Spree來滿足他們的需求的人來說,這可能是一項常規工作,但是我對此很難接受。Spree - 創建整個網站的偏好

我想創建一個首選項來存儲一系列產品,以便在主頁中顯示爲「精選產品」。我經歷了this guide,並且我已經在我的應用程序樹中創建了一個在lib/spree/下的文件。該文件是這樣的:

class Spree::HomepageConfiguration < Spree::Preferences::Configuration 
    preference :featured_products, :string 
end 

之後,我添加的lib /大禮包文件夾中的autoload_paths在application.rb中文件:

config.autoload_paths += %W(#{config.root}/lib/spree/) 

最後,我創建了一個叫做一個初始化homepage_configurationconfig/initializers/配置首選項:

module Spree 
    Spree::MyApp::Config = Spree::HomepageConfiguration.new 
end 

Spree::MyApp::Config[:featured_products] = ["a", "b"] 

但是,當我運行的服務器我得到這個錯誤:

Expected C:/path/to/my/application/lib/spree/homepage_configuration.rb to define HomepageConfiguration (LoadError) 

我不知道我在做什麼錯。歡迎任何建議。

我正在運行Rails 3.2.13並使用Spree從1-3穩定分支。

回答

0

爲什麼不把它作爲產品的屬性?按照自己的方式進行操作需要在每次要更改產品時重新啓動服務器並更改代碼。

我剛剛在產品說明中添加了一個複選框,以檢查產品何時會顯示,並將範圍添加到型號scope :featured, lambda { |*args| { :conditions => { :featured => true }, :limit => args.first || 6, :order => "RAND()" } },您可以隨意查看和取消選中。

1

即使是一個非常古老的問題...我之前已經被問過最近這個問題(配置站點寬大的喜好)。

至於報告的錯誤和提供的代碼,所述LIB /禮包/ homepage_configuration.rb應該是:

module Spree 
    class HomepageConfiguration < Spree::Preferences::Configuration 
     preference :featured_products, :string 
    end 
end 

下面是一個示例要旨與一個配置示例我給最近https://gist.github.com/mumoc/55dce225244fb02363e2

+0

我按照github的要求寫下了你的步驟。 這是否也立即創建設置路線/頁面?如果是這樣,我可以在哪裏訪問? – Paul 2015-02-13 12:12:47