【问题标题】:Does the syntax for Rail's form_tag change under Ruby 1.9 and/or Rails 3.2?Rail 的 form_tag 的语法在 Ruby 1.9 和/或 Rails 3.2 下会改变吗?
【发布时间】:2013-06-26 21:59:48
【问题描述】:

我最近刚刚将 Rails 项目从 Rails 3.0.10 和 Ruby 1.8 升级到 Rails 3.2 和 Ruby 1.9。但是,升级后,以前从未给我带来麻烦的视图之一现在正在抛出错误。有问题的视图代码来自我的 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 下却没有?

【问题讨论】:

    标签: ruby-on-rails view ruby-on-rails-3.2 erb ruby-1.9


    【解决方案1】:

    你有这个错误是因为你在方法参数的括号前留下了空格。删除那个括号(或空格)应该没问题:

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

    由于这是一个语法错误,你得到这个的原因是语言更新,而不是框架更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-23
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 2012-05-04
      • 1970-01-01
      相关资源
      最近更新 更多