0

テスト本番サーバーにサイトの特定のページ(実際にはほとんどのページ)を読み込もうとすると、奇妙なエラーメッセージが表示されます。

Started GET "/students" for 10.0.0.68 at Mon Sep 17 12:53:16 +0100 2012
Processing by StudentsController#index as HTML
  Rendered shared/_alerts.html.erb (0.7ms) 
  Rendered students/_student_search.html.erb (0.0ms)
  Rendered students/index.html.erb within layouts/application (17.8ms)
Completed 500 Internal Server Error in 92ms

ActionView::Template::Error (syntax error on line 4, col 586: `      state: ["北海道","青森県","岩手県","宮城県","秋田県","山形県","福島県","茨城県","栃木県","群馬県","埼玉県","千葉県","東京都","神奈川県","新潟県","富山県","石川県","福井県","山梨県","長野県","岐阜県","静岡県","愛知県","三重県","滋賀県","京都府","大阪府","兵庫県","奈良県","和歌山県","鳥取県","島根県","岡山県","広島県","山口県","徳島県","香川県","愛媛県","高知県","福岡県","佐賀県","長崎県","熊本県","大分県","宮崎県","鹿児島県","沖縄県"]'):
    59:     <% end %>
    60:     
    61:     <div class="sidebar_item">
    62:       <h2>Filter By <%= t(:class) %></h2>
    63:       <div class="content">
    64:         
    65:         <% if Klass.where(:tutor_group => false).count > 0 %>
  app/views/students/index.html.erb:62:in `_app_views_students_index_html_erb___542210558__648905548'
  app/views/students/index.html.erb:35:in `_app_views_students_index_html_erb___542210558__648905548'

エラーメッセージで発生するページは常に同じですが(同じ行番号と列番号)、ファイル名が異なり、引用符で囲まれたコードも変更されます。私の知る限り、または見ることができる限り、これらの日本語の文字は私のコードのどこにもありません。エンコーディングの問題か何かのように見えますが、私には本当にわかりません。どこからデバッグを開始すればよいのかわかりません。

私の環境:

deploy@mike-test:~$ ruby -v
ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-linux]
deploy@mike-test:~$ rails -v
Rails 3.2.0
deploy@mike-test:~$ gem -v
1.8.15
deploy@mike-test:~$ /opt/nginx/sbin/nginx -V
nginx version: nginx/1.2.3
built by gcc 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) 
TLS SNI support enabled
configure arguments: --prefix=/opt/nginx --with-http_ssl_module --with-http_gzip_static_module --with-cc-opt=-Wno-error --with-pcre=/tmp/root-passenger-16778/pcre-8.31 --add-module=/usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.17/ext/nginx
deploy@mike-test:~$ passenger -v
Phusion Passenger version 3.0.17

Ubuntuは11.04です。

更新: OK、問題をいくらか絞り込みました。これは、翻訳用のRailsヘルパーメソッドであるメソッド呼び出しt(:class)に関係していることがわかりました。これは、私のビューにかなり表示されます(このアプリは初めてなので、まだ頭を悩ませています。書かれた)。存在する2つのロケールファイルから判断すると、これは、ロケール設定に応じて「School」または「Class」のいずれかを返すことを意味します。しかし、私がまだ知らないのは、なぜそれがこのエラーを引き起こしているのかということです。

4

2 に答える 2

0

適切な文字エンコードを処理する必要があるようです。UTF-8の使用force_encodingまたは使用に関する簡単な調査結果を次に示します。encoding

于 2012-09-17T13:39:42.947 に答える
0

@Hates_はコメントでこれを解決したので、彼がここに置いたものをコピーして、答えとして受け入れることができるようにします。

この質問に対する答えは、 Heroku run db:migrateが失敗し、rakeが中止されたために 役立つはずです:https ://stackoverflow.com/a/12451678

于 2012-09-18T11:22:03.853 に答える