【问题标题】:syntax error, unexpected ':', expecting ')' in Stripe form using Rails 3语法错误,使用 Rails 3 的 Stripe 形式出现意外的 ':',期待 ')'
【发布时间】:2011-12-08 11:27:12
【问题描述】:

我正在关注 Ryan Bates 的 RailsCast #288 “Billing with Stripe”,当我修改表单以包含信用卡信息时,我收到以下错误:

compile error
/Programs/domainster/app/views/domains/_form.html.erb:23: syntax error, unexpected ':',    expecting ')'
...d_tag :card_number, nil, name: nil );@output_buffer.safe_con...

我根据 RailsCast 检查了我的语法,代码是相同的。我什至更新了我的 GemFile,以确保我运行的是最新的 Rails。

这是我的表格:

<div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :description %><br />
    <%= f.text_area :description %>
  </div>
  <div class="field">
    <%= label_tag :card_number, "Credit Card Number" %><br />
    <%= text_field_tag :card_number, nil, name: nil %>
  </div>
  <div class="field">
    <%= label_tag :cvv, "Security Code on Card (CVV)" %><br />
    <%= text_field_tag :cvv, nil, name: nil %>
  </div>
  <div class="field">
    <%= label_tag :card_month, "Card Expiration" %><br />
    <%= select_month nil, {add_month_numbers: true}, {name: nil, id: "card_month"} %>
    <%= select_year nil, {start_year: Date.today.year, end_year: Date.today.year+15}, {name: nil, id: "card_year"} %>
  </div>
  <div class="actions">
    <%= f.submit "Generate"%>
  </div>

我一步一步地遵循 RailsCast,但我不知道为什么会出现这个错误。有什么想法吗?

【问题讨论】:

  • ruby -v 从控制台给你什么?

标签: ruby-on-rails ruby-on-rails-3 syntax-error railscasts


【解决方案1】:

问题在于 Ryan 使用 Ruby 1.9.2 的哈希语法

 <%= select_year nil, {start_year: Date.today.year, end_year: Date.today.year+15}, {name: nil, id: "card_year"} %>

需要写成

Date.today.year, :end_year => Date.today.year+15}, {:name => nil, :id => "card_year"} %>

用于在 1.8.7 上运行。检查其他行,看看是否还有其他需要修复的行。

【讨论】:

  • 我刚刚使用 RVM 切换到 Ruby 1.9.2 并运行了 bundle install ,但仍然遇到同样的错误。然后我将语法更改为您建议的语法并且它起作用了。知道为什么即使更新到 1.9.2 后它仍然给我错误?顺便说一句,谢谢。
  • 很奇怪——Ryan 肯定在使用 1.9.2 引入的新语法。此外,这些天我肯定会建议使用 1.9.2 作为 Ruby 1.8.7 上的默认 ruby​​。
猜你喜欢
  • 2016-09-11
  • 2015-08-19
  • 1970-01-01
  • 2017-09-12
  • 1970-01-01
  • 2015-04-02
  • 1970-01-01
  • 2016-05-02
  • 1970-01-01
相关资源
最近更新 更多