语法错误,意外':',期待')'使用Rails 3的条带形式

vic*_*ich 0 ruby-on-rails syntax-error railscasts ruby-on-rails-3

我正在关注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...
Run Code Online (Sandbox Code Playgroud)

我检查了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>
Run Code Online (Sandbox Code Playgroud)

我一步一步地跟着RailsCast,我不知道为什么我会收到这个错误.有任何想法吗?

Joh*_*non 5

问题是Ryan使用Ruby 1.9.2语法进行哈希处理

 <%= select_year nil, {start_year: Date.today.year, end_year: Date.today.year+15}, {name: nil, id: "card_year"} %>
Run Code Online (Sandbox Code Playgroud)

需要写成

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

在1.8.7上运行.检查其他行以查看是否还有其他行需要修复.