0

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 に対して構文をチェックしたところ、コードは同じでした。最新の Rails が実行されていることを確認するために、GemFile も更新しました。

これが私のフォームです:

<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 を順を追って実行しましたが、なぜこのエラーが発生するのかわかりません。何か案は?

4

1 に答える 1

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"} %>

次のように記述する必要があります

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

1.8.7で実行するため。他の行をチェックして、修正が必要な行があるかどうかを確認します。

于 2011-10-15T19:57:53.047 に答える