2011-12-23 9 views
0

我只是將我的應用程序切換到rails 3.1和ruby 1.9。我也通過他們的API整合了Stripe。也許這是造成問題? 我無法弄清楚我的生活這個表格的問題是什麼。它說第一個錯誤在第3行與else聲明(這是一個編譯錯誤,下面的完整錯誤細節)。所有的縮進都是一致的,我逐行進行修復。讓我知道是否應該發佈更多信息,比如我的gemfile或其他東西。HAML和條紋在form_for中,我不斷收到編譯錯誤。有什麼明顯的錯誤嗎?

這裏是有問題的形式:

=if 
    %h1 Sign up 
=else 
    %h1 Edit 
=form_for(@user) do |f| 
    =render "shared/error_messages", :target => @user 
    =f.hidden_field :stripe_card_token 
    %dl 
     =if signed_in? 
      %dt.field=f.label :avatar 
      %dd.field=f.file_field :avatar 
     %dt.field=f.label :name 
     %dd.field=f.text_field :name 
     %dt.field=f.label :email 
     %dd.field=f.text_field :email 
     =if @user.new_record? 
      %dt.field=f.label :password 
      %dd.field=f.password_field :password 
     =if @user.stripe_card_token.present? 
      %p Credit card has been provided. 
     =else 
      %div.field 
       =label_tag :card_number, "Credit Card Number" 
       =text_field_tag :card_number, nil, name:nil 
      %div.field 
       =label_tag :card_code, "Security Code on Card (CVV)" 
       =text_field_tag :card_code, nil, name:nil 
      %div.field 
       =label_tag :card_month, "Card Expiration" 
       =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#stripe_error 
       %noscript JavaScript is not enabled and is required for this form. First enable it in your web browser settings. 
    .actions 
     =f.submit((defined?(editing) ? "Update" : "Sign Up")) 

以下是錯誤:

compile error 
/Users/brianjoseff/rails_projects/groupie/app/views/users/_form.html.haml:3: syntax error, unexpected kELSE 
/Users/brianjoseff/rails_projects/groupie/app/views/users/_form.html.haml:23: syntax error, unexpected kELSE 
/Users/brianjoseff/rails_projects/groupie/app/views/users/_form.html.haml:25: syntax error, unexpected tSYMBEG, expecting kDO or '{' or '(' 
...d_tag :card_number, nil, name:nil 
          ^
/Users/brianjoseff/rails_projects/groupie/app/views/users/_form.html.haml:27: syntax error, unexpected tSYMBEG, expecting kDO or '{' or '(' 
...eld_tag :card_code, nil, name:nil 
          ^
/Users/brianjoseff/rails_projects/groupie/app/views/users/_form.html.haml:30: odd number list for Hash 
...month nil, {add_month_numbers: true}, {name: nil, id: "card_... 
          ^
/Users/brianjoseff/rails_projects/groupie/app/views/users/_form.html.haml:30: syntax error, unexpected ':', expecting '}' 
...month nil, {add_month_numbers: true}, {name: nil, id: "card_... 
          ^
/Users/brianjoseff/rails_projects/groupie/app/views/users/_form.html.haml:30: odd number list for Hash 
...d_month_numbers: true}, {name: nil, id: "card_month"} 
          ^
/Users/brianjoseff/rails_projects/groupie/app/views/users/_form.html.haml:30: Can't assign to nil 
...th_numbers: true}, {name: nil, id: "card_month"} 
          ^
/Users/brianjoseff/rails_projects/groupie/app/views/users/_form.html.haml:30: syntax error, unexpected ':', expecting '=' 
...umbers: true}, {name: nil, id: "card_month"} 
          ^
/Users/brianjoseff/rails_projects/groupie/app/views/users/_form.html.haml:30: syntax error, unexpected '}', expecting ')' 
/Users/brianjoseff/rails_projects/groupie/app/views/users/_form.html.haml:37: syntax error, unexpected kENSURE, expecting $end 
...Util.html_safe(_erbout);ensure;@haml_buffer = @haml_buffer.u... 
          ^

感謝所有

更新1 ...新的形式,而不JavaScript數組符號:

=if 
    %h1 Sign up 
=else 
    %h1 Edit 
=form_for(@user) do |f| 
    =render "shared/error_messages", :target => @user 
    =f.hidden_field :stripe_card_token 
    %dl 
     =if signed_in? 
      %dt.field=f.label :avatar 
      %dd.field=f.file_field :avatar 
     %dt.field=f.label :name 
     %dd.field=f.text_field :name 
     %dt.field=f.label :email 
     %dd.field=f.text_field :email 
     =if @user.new_record? 
      %dt.field=f.label :password 
      %dd.field=f.password_field :password 
     =if @user.stripe_card_token.present? 
      %p Credit card has been provided. 
     =else 
      %div.field 
       =label_tag :card_number, "Credit Card Number" 
       =text_field_tag :card_number, :name => nil 
      %div.field 
       =label_tag :card_code, "Security Code on Card (CVV)" 
       =text_field_tag :card_code, :name => nil 
      %div.field 
       =label_tag :card_month, "Card Expiration" 
       =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#stripe_error 
       %noscript JavaScript is not enabled and is required for this form. First enable it in your web browser settings. 
    .actions 
    =f.submit((defined?(editing) ? "Update" : "Sign Up")) 

回答

0

=語句

您使用Javascript數組表示法中HAML。 HAML使用Ruby來評估=(表達):

因此,這是錯誤的:

= select_month nil, {add_month_numbers: true}, {name: nil, id: "card_month"} 

應該是:

= select_month nil, { :add_month_numbers => true}, { :name => nil, id => "card_month" } 

Else語句

的代碼行不產生輸出,所以使用 - 而不是=

- if 
    %h1 Sign up 
- else 
    %h1 Edit 
+0

好吧,讓我看看如果改變,得到的東西工作 – Brian 2011-12-23 06:41:13

+0

好吧,錯誤的數量已經減少,但我仍然在第三行出現'編譯錯誤'...語法錯誤,意外的kELSE'。我已編輯的問題,包括編輯的形式,取出JavaScript數組符號 – Brian 2011-12-23 06:47:39

+0

生病的鬍子btw – Brian 2011-12-23 06:49:14

相關問題