Spree无法访问部分数据库?

时间:2012-04-08 11:43:51

标签: ruby-on-rails spree

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

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

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

疯狂,对吗?我想不出在这一点上该做什么。如果我做Country = Country.first。我可以通过加载一个空的index.haml模板来实现它。所以这意味着它正在进入某种类型的国家。

任何人都有任何理论上的想法,为什么会发生这种情况?我怎么能绕过它?

2 个答案:

答案 0 :(得分:1)

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

214国家/地区是美国,由于某些原因,Spree默认使用该国家/地区。这意味着如果你没有装载美国,你就会遇到这个问题。

要解决此问题,您必须在初始化程序中手动设置默认国家/地区:

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

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

答案 1 :(得分: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