2012-04-08 10 views
0

これは、Spreeの読み込みの複雑さと関係があると確信しています。Spreeは部分的にデータベースにアクセスできませんか?

しかし、私の主な問題は、Spreeが国を読み込めないことです。私にとってそれは、Country.find(214)です。リモートコンソールでチェックすると心配はありません。すべての国、すべての州があります。

しかし、私はstates_controller#インデックス用のコントローラでCountry.find(214)を設定し、またはそれを行うbefore_load方法を作る、またはビュー自体に入れ、しようとした場合、それは常に:Error (Couldn't find Country with ID=214)を返します。

クレイジー、そうですか?私はこの時点で何をすべきか考えることはできません。もし私がCountry = Country.firstをしたら。私はindex.hamlの空のテンプレートをロードするだけで動作させることができます。それは、それがタッピングしている何らかの国が存在することを意味します。

これはなぜ起こっているのかについて理論的な考えはありますか?そして私がそれを回避する方法は?

+0

私は実行中のSQLをチェックしました。おそらくスコープが適用されています。 –

+0

これはsqlite3です。アプリケーションの残りの部分は完全に正常にロードされています。しかし、私はあなたのコメントがより具体的な何かについてのものだと思います。あなたはSpreeの経験がありますか?この範囲はどこに適用されていると思いますか? – Trip

+0

私の人生でこれを使ったことはありませんが、生成されたSQLをチェックすることで、探し始めることができます。 –

答えて

1

申し訳ありませんがこれは少し遅れていますが、私はあなたの投稿につまずいて問題の原因を突き止めました。

国214はアメリカ合衆国で、何らかの理由でSpreeがその国にデフォルト設定されています。つまり、もしあなたがUSAをロードしていなければ、あなたはその問題にぶつかるでしょう。それを回避するために

は、手動で初期化にデフォルトの国を設定する必要があります:

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

私はあなたがが、今ではこれを解決してきました願っています。 :)

+0

ワットありがとう、トン。 – Trip

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 
関連する問題