2012-04-08 2 views
0

이것이 Spree의 로딩 복잡성과 관련이 있다고 확신합니다.Spree는 부분적으로 데이터베이스에 액세스 할 수 없습니까?

하지만 내 주요 문제는 Spree가 국가를로드 할 수 없다는 것입니다. 나에게 그것은 Country.find (214)이다. 원격 콘솔에서 확인해도 걱정이 없습니다. 모든 국가, 모든 주들이 있습니다. 내가 states_controller # 지수의 컨트롤러 (214) Country.find를 설정하거나 것을 않는 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는 해당 국가를 기본값으로 사용합니다. 즉, 미국이로드되어 있지 않으면 그 문제에 부딪 힐 수 있습니다.

그것을 해결하기 위해, 당신은 수동으로 초기화에 기본 국가를 설정해야합니다 :

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 
관련 문제