Thin бросает ArgumentError при обработке помощника at () в представлении - PullRequest
0 голосов
/ 09 августа 2011

При запуске моего приложения со стандартным сервером WEBrick оно работает нормально (не выдает никаких ошибок), но при запуске с Thin выдает ошибку:

ArgumentError in Machine#index

Showing /home/mika/projects/vaalikone/app/views/questions/_detail_box.haml where line #4 raised: 

syntax error on line 6, col 2: `  register_information: "Rekisteriseloste"'

Извлеченный источник (около строки № 4):

1: .detail_box
2:   %table
3:     %tr
4:       %td= t("question.user")
5:       %td= question.user.full_name
6:     %tr
7:       %td= t("question.created_at")

И конец трассировки полного стека:

/home/mika/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/syck.rb:135:in `load'
/home/mika/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/syck.rb:135:in `load'
/home/mika/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/syck.rb:146:in `block in load_file'
/home/mika/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/syck.rb:145:in `open'
/home/mika/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/syck.rb:145:in `load_file'
i18n (0.5.0) lib/i18n/backend/base.rb:170:in `load_yml'
i18n (0.5.0) lib/i18n/backend/base.rb:156:in `load_file'
i18n (0.5.0) lib/i18n/backend/base.rb:15:in `block in load_translations'
i18n (0.5.0) lib/i18n/backend/base.rb:15:in `each'
i18n (0.5.0) lib/i18n/backend/base.rb:15:in `load_translations'
i18n (0.5.0) lib/i18n/backend/simple.rb:55:in `init_translations'
i18n (0.5.0) lib/i18n/backend/simple.rb:69:in `lookup'
i18n (0.5.0) lib/i18n/backend/base.rb:26:in `translate'
i18n (0.5.0) lib/i18n.rb:155:in `translate'
actionpack (3.0.7) lib/action_view/helpers/translation_helper.rb:48:in `translate'
app/views/questions/_detail_box.haml:4:in `_app_views_questions__detail_box_haml___1037386747_92326130__348576359'

Я абсолютно ошеломлен. Тонкий жалуется на мой файл локали, а WEBrick - нет. Начало моего файла локали ниже. Кто-нибудь видит в этом что-то странное?

fi:
  login:        "Kirjaudu sisään"
  logout:       "Kirjaudu ulos"
  register:     "Rekisteröidy"
  edit_registration: "Muokkaa tietojasi"
  terms:        "Käyttöehdot"
  register_information: "Rekisteriseloste"
  show:         "Näytä"
  edit:         "Muokkaa"

Полагаю, ошибка связана не столько с файлом локали, сколько с чем-то другим. Если я переместу 6-ю строку в файле локали на пару строк, Тонкий начнет жаловаться на строку, которая переместится в 6-ю строку из 7-й строки.

Кто-нибудь имеет представление, в чем проблема?

1 Ответ

0 голосов
/ 12 августа 2011

Мне удалось решить эту проблему, просто переписав части моего файла локали fi.yml вокруг строк, которые вызывали ошибки. Я не смог найти ни одного общего правила для ошибки. Если сервер выдал ошибку для строки 34, я переписал строки 33 и 34. Таким образом, я смог получить рабочий файл fi.yml, который в настоящее время не выдает никаких ошибок.

В какой-то момент я подозревал, что Тонкому не нравятся вкладки, которые у меня были для того, чтобы файл был красивым и читабельным. Но в итоге это не стало причиной ошибок. В файле могут быть вкладки, но иногда добавление вкладки между клавишей и строкой приводит к ошибке Thin to throw.

Мой новый файл fi.yml отличается от старого только пустым пространством. В моем новом файле fi.yml меньше пустого пространства и значительно меньше вкладок, и теперь он работает.

Как странно это!

Одна вещь, которая может иметь к этому какое-то отношение, заключается в том, что я добавил скрипт rails.vim в свой vim во время перехода на использование Thin. Rails.vim изменил кнопку табуляции, чтобы добавить два пробела вместо символа табуляции.

...