0

最近、Rails プロジェクトを Rails 3.0.10 と Ruby 1.8 から Rails 3.2 と Ruby 1.9 にアップグレードしました。ただし、アップグレード後、これまで問題を引き起こしたことのないビューの 1 つがエラーをスローするようになりました。問題のビュー コードは、私の index.html.erb からのものです。

<%= form_tag ({:controller => 'upload', :action => 'single_content'}, :multipart => true) do |f| %>
    <%= hidden_field 'upload', 'single_content_row_id' %>
    <%= file_field 'upload', 'single_content', :multiple => false, :hidden => 'true' %>
<% end %>

これはアップグレード前は問題なく動作していましたが、今ではこれが得られます。

ActionView::Template::Error (./rails-root/app/views/index/index.html.erb:173: syntax error, unexpected ',', expecting ')'
..., :action => 'single_content'}, :multipart => true) do |f| @...

そこにあってはならないというコンマを指しているのはわかりますが、理由がわかりません。おそらくもっと重要なのは、なぜ今は文句を言うのに、Rails 3.0.10 と Ruby 1.8 では文句を言わないのですか?

4

1 に答える 1

1

メソッドのパラメーターで括弧の前にスペースを残しているため、このエラーが発生します。そのブラケット(またはスペース)を削除すると、問題ありません。

<%= form_tag {:controller => 'upload', :action => 'single_content'}, :multipart => true do |f| %>

これは構文エラーであるため、フレームワークの更新ではなく言語の更新が原因です。

于 2013-06-26T22:14:28.683 に答える