0

我确信这与 Spree 加载的复杂性有关。

但我的主要问题是 Spree 无法加载 Country。对我来说,是 Country.find(214)。如果我在远程控制台中检查它,我觉得不用担心。所有的国家,所有的州都在那里。

但是,如果我尝试在控制器中为 states_controller#index 设置 Country.find(214),或者创建一个执行该操作的 before_load 方法,或者将它放在视图本身中,它总是返回 :Error (Couldn't find Country with ID=214).

疯了吧?我现在想不出该怎么办。如果我做 Country = Country.first。我可以通过加载 index.haml 的空模板来让它工作。所以这意味着它正在进入某种国家。

有人对为什么会发生这种情况有任何理论上的想法吗?以及我如何能够规避它?

4

2 回答 2

1

抱歉,这有点晚了,但我偶然发现了你的帖子,并找出了导致问题的原因。

国家 214 是美国,出于某种原因,Spree 默认为该国家/地区。这意味着如果你没有加载美国,你会遇到这个问题。

要绕过它,您必须在初始化程序中手动设置默认国家/地区:

Spree.config do |config|
  Spree::Config.default_country_id = Spree::Country.find_by_name("Singapore").id
end

我希望你现在已经解决了这个问题。:)

于 2012-10-24T14:11:00.143 回答
0
Its Pretty much easy in Spree2.0.0 should work for every Spree version too.

Spree.config do |config| # Set Country name and Currency like this(Note: you will need to    run 'rake db:seed'        before this. Change country name in Spree::Country.find_by_name('United Kingdom') replace    united kingdom to your desire one)
config.currency = 'EUR'
country = Spree::Country.find_by_name('United Kingdom')
config.default_country_id = country.id if country.present?

# 您也可以设置以下选项。

config.site_name = "Teamer Store"
config.override_actionmailer_config = true
config.enable_mail_delivery = true

end
于 2013-07-03T11:51:49.793 回答