0

これは、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の空のテンプレートをロードするだけで、それを機能させることができます。つまり、それが利用しているある種の国が存在するということです。

なぜこれが起こっているのかについて理論的な考えを持っている人はいますか?そして、どうすればそれを回避できるでしょうか?

4

2 に答える 2

1

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

国214は米国であり、何らかの理由でSpreeはデフォルトでその国になります。つまり、USAをロードしていない場合は、その問題が発生します。

これを回避するには、イニシャライザでデフォルトの国を手動で設定する必要があります。

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 に答える