синтаксическая ошибка, неожиданное ':', ожидание ')' в форме Stripe с использованием Rails 3 - PullRequest
0 голосов
/ 15 октября 2011

Я слежу за RailsCast # 288 Райана Бейтса «Биллинг с полосой», и когда я изменяю свою форму, добавляя информацию о кредитной карте, я получаю следующую ошибку:

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, и я понятия не имею, почему я получаю эту ошибку. Есть идеи?

1 Ответ

5 голосов
/ 15 октября 2011

Проблема в том, что Райан использует синтаксис Ruby 1.9.2 для хэшей

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

должно быть записано как

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

для работы на 1.8.7. Проверьте другие строки, чтобы увидеть, есть ли другие, которые нуждаются в исправлении.

...