因此,这个项目是在 2010 年代初期使用 ruby 1.8.7、rails 2.3.18 和 mysql 数据库构建的。升级到ruby 1.9.3和mysql 8后,项目抛出标题中提到的错误。随着 Psych::Syntax error 它说,
(<unknown>): did not find expected node content while parsing a flow node at line 13 column 14
现在有趣的是,如果我在config/locales/sv.yml中注释掉第13行,用于翻译,项目运行成功。我目前对它的工作方式或原因一无所知。这是 sv.yml.
的前 23 行1 "sv":
2 date:
3 formats:
4 default: "%d.%m.%Y"
5 short: "%e. %b"
6 long: "%e. %B %Y"
7 only_day: "%e"
8
9 day_names: [Söndag, Måndag, Tisdag, Onsdag, Torsdag, Fredag, Lördag]
10 abbr_day_names: [Sön, Mån, Tis, Ons, Tor, Fre, Lör]
11 month_names: [~, Januari, Februari, Mars, April, Maj, Juni, Juli, Augusti, September, Oktober, November, December]
12 abbr_month_names: [~, Jan, Feb, Mar, Apr, Maj, Jun, Jul, Aug, Sep, Okt, Nov, Dec]
13 order: [:year, :month, :date]
14
15 time:
16 formats:
17 default: "%A, %e. %B %Y, %H:%M Uhr"
18 time: "%H:%M"
19 short: "%e. %B, %H:%M Uhr"
20 long: "%A, %e. %B %Y, %H:%M Uhr"
21 only_second: "%S"
22 am: ""
23 pm: ""
这是
../app/controllers/home_controller.rb文件中的
index
函数,根据应用程序跟踪,错误开始于此。
def index
render "index#{params[:v]}"
end
这是应用程序跟踪的内容:
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/psych.rb:203:in `parse'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/psych.rb:203:in `parse_stream'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/psych.rb:151:in `parse'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/psych.rb:127:in `load'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/activesupport-2.3.18/lib/active_support/vendor/i18n-0.4.1/i18n/backend/base.rb:227:in `load_yml'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/activesupport-2.3.18/lib/active_support/vendor/i18n-0.4.1/i18n/backend/base.rb:214:in `load_file'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/activesupport-2.3.18/lib/active_support/vendor/i18n-0.4.1/i18n/backend/base.rb:21:in `block in load_translations'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/activesupport-2.3.18/lib/active_support/vendor/i18n-0.4.1/i18n/backend/base.rb:21:in `each'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/activesupport-2.3.18/lib/active_support/vendor/i18n-0.4.1/i18n/backend/base.rb:21:in `load_translations'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/activesupport-2.3.18/lib/active_support/vendor/i18n-0.4.1/i18n/backend/simple.rb:57:in `init_translations'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/activesupport-2.3.18/lib/active_support/vendor/i18n-0.4.1/i18n/backend/simple.rb:40:in `available_locales'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/activesupport-2.3.18/lib/active_support/vendor/i18n-0.4.1/i18n/config.rb:38:in `available_locales'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/activesupport-2.3.18/lib/active_support/vendor/i18n-0.4.1/i18n.rb:35:in `available_locales'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/template.rb:226:in `valid_locale?'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/template.rb:243:in `parse_extensions'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/template.rb:233:in `split'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/template.rb:118:in `initialize'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/reloadable_template.rb:81:in `initialize'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/reloadable_template.rb:38:in `new'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/reloadable_template.rb:38:in `register_template_from_file'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/reloadable_template.rb:62:in `block in load_all_templates_from_dir'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/reloadable_template.rb:62:in `each'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/reloadable_template.rb:62:in `load_all_templates_from_dir'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/reloadable_template.rb:29:in `[]'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/paths.rb:48:in `block in find_template'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/paths.rb:47:in `each'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_view/paths.rb:47:in `find_template'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_controller/base.rb:1391:in `default_template'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_controller/layout.rb:265:in `candidate_for_layout?'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_controller/layout.rb:245:in `pick_layout'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_controller/base.rb:915:in `render'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_controller/benchmarking.rb:51:in `block in render_with_benchmark'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/activesupport-2.3.18/lib/active_support/core_ext/benchmark.rb:17:in `block in ms'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/benchmark.rb:295:in `realtime'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/activesupport-2.3.18/lib/active_support/core_ext/benchmark.rb:17:in `ms'
/home/../.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/actionpack-2.3.18/lib/action_controller/benchmarking.rb:51:in `render_with_benchmark'
/home/../project/app/controllers/home_controller.rb:17:in `index'
我未能重现的另一件有趣的事情是,如果我在服务器运行时注释掉第 13 行,有时它会指向视图文件的第 98 行引用相同的错误。代码如下../app/view/event/partials/_event_details_form.html.haml
95 %p.field#start_time
96 = f.label :start_time, "%s: " % ["Start time"[:event_start_time]]
97 - # TODO: Switch to jQuery-UI Datepicker f.text_field :start_time, :value => f.object.start_time.to_s.split(" ").first
98 = date_picker f, :start_time
99 -# DISABLED: %strong= link_to "Hide"[:event_start_time_hide], 'javascript: return false;', :id => 'hide-start_time'
100 - # %span.hint= "Event starts at?"
101
102 - if f.object.start_time.present?
103 :javascript
104 $j(function() {
105 $j("#start_time").show();
106 $j("#show-start_time").hide();
107 });
108 - else
109 :javascript
110 $j(function() {
111 $j("#start_time").hide();
112 $j("#show-start_time").show();
113 });
我怀疑sv.yml
的
13th行中的
order
与_event_details_form.html.haml中98th行中的
date_picker
有关。
另外,日期选择器功能如下,
$j.datepicker.setDefaults($.datepicker.regional['sv']);
$j("#event_start_time").datepicker({
dateFormat: "yy-mm-dd",
autoSize: true,
buttonImage: '/images/datepicker.gif'
});
13 order: [':year', ':month', ':date']