无法将 .erb 转换为 .haml

Cannot convert .erb to .haml

我有这段代码可以创建捐赠过程的视图:

<h2 class="mbs">New Donation</h2>
<br>
<%= form_tag confirm_payment_path, id: "checkout-form" do %>
  <% if current_user and !current_user.has_payment_info? %>
    <%= render 'customer_form' unless @anonymous_user %>
<% end %>

<br>
<p>Please enter your donation details (this is a donation and will not be applied towards your account):</p>
<div id="payment-form"></div>
<div id='coinbase-container-id'></div>
<input type="text" name="amount" placeholder="Enter amount">
<input type="submit" class="btn btn-primary" value="Donate">
<% end %>

<script src="https://js.braintreegateway.com/v2/braintree.js"></script>
<script>

var clientToken = "<%= @client_token %>";
braintree.setup(clientToken, "dropin", {
container: "payment-form",
form: "checkout-form",
coinbase: { container: "coinbase-container-id" }
}
 );
</script>

我试过将其转换为 .haml,但没有用(我认为这是由于缩进不当造成的):

%h2.mbs New Donation
%br
= form_tag confirm_payment_path, id: "checkout-form" do
  - if current_user and !current_user.has_payment_info?
  = render 'customer_form' unless @anonymous_user
%br
%p Please enter your donation details (this is a donation and will not be applied towards your account):
#payment-form
#coinbase-container-id
%input{:name => "amount", :placeholder => "Enter amount", :type => "text"}
%input.btn.btn-primary{:type => "submit", :value => "Donate"}
%script{:src => "https://js.braintreegateway.com/v2/braintree.js"}
:javascript
var clientToken = " @client_token ";
braintree.setup(clientToken, "dropin", {
  container: "payment-form",
  form: "checkout-form",
  coinbase: { container: "coinbase-container-id" }
}
 );

为什么错了?我是 .haml 的新手

:javascript 声明后的 JavaScript 代码需要缩进,否则 HAML 不会将其放入它生成的 <script> 标记中。见 Filters documentation.

:javascript
  var clientToken = " @client_token ";
  braintree.setup(clientToken, "dropin", {
    container: "payment-form",
    form: "checkout-form",
    coinbase: { container: "coinbase-container-id" }
  });

您的 ERB 源代码中似乎还有一个额外的 <% end %>,但 HAML 忽略了它。