2012-10-15 25 views
6

Mam aplikację Rails 3, w której próbuję zapełnić zmienną javascript każdym narodem w mojej bazie danych (mniej niż 300 krajów) jako obiektem JSON. Jest to istotne w moim pliku linia nations.js.erb:Uzyskiwanie dostępu do modelu z pliku js.erb podczas wstępnej kompilacji

_this.nations = <%= Nation.all.to_json :only => [:id], :methods => :text %>; 

Kiedy zadzwonić do mojego pliku JS w przeglądarce /assets/users.js który robi wymagają narodów złożyć zmienna _this.nations jest wypełniana doskonale. Kiedy próbuję zrobić precompile otrzymuję następujący:

$> rake assets:precompile 
$> rake aborted! 
uninitialized constant Nation (in nations.js.erb) 

Więc moje pytanie brzmi: czy jest to możliwe, aby odwołać się do modelu Nation lub dowolny model, od wewnątrz pliku js.erb dla prekompilacja? Próbowałem również używać mojego NationsHelper, ale mój błąd został właśnie zmieniony na niezainicjowany stały NationsHelper.

Jestem całkiem nowy w RoR, więc jeśli potrzebne są odpowiednie informacje, których nie podałem, proszę po prostu zapytać.

Odpowiedz

7

Jeśli masz config.assets.initialize_on_precompile zestaw do false gdzieś następnie spróbuj włączyć go

config.assets.initialize_on_precompile = true 
+0

To naprawiło to, bardzo dziękuję za pomoc. –

+0

To zadziwiająco nie * nie * wpływa na problem intialize_on_precompile Heroku. – Trip

0

Dlaczego nie można wykonać połączenie w kontrolerze

kontrolera

@nations = Nation.all 

nations.js. erb

_this.nations = <%= @nations.all.to_json :only => [:id], :methods => :text %>; 
Powiązane problemy