Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Braintree支付网关“确认支付url';_Ruby On Rails_Ruby On Rails 3_Nameerror_Braintree - Fatal编程技术网

Ruby on rails Braintree支付网关“确认支付url';

Ruby on rails Braintree支付网关“确认支付url';,ruby-on-rails,ruby-on-rails-3,nameerror,braintree,Ruby On Rails,Ruby On Rails 3,Nameerror,Braintree,我在尝试将braintree gem合并到rails 3应用程序时遇到错误。真正奇怪的是,我能够在我的系统上的一个应用程序中成功安装它,但当我尝试在另一个应用程序上运行它时,出现以下错误: undefined local variable or method `confirm_payment_url' for #<#<Class:0x103a2bf08>:0x103a2a298> 如果一个rails应用程序能够识别此方法,而另一个应用程序不能识别,那么什么类型的更改会产

我在尝试将braintree gem合并到rails 3应用程序时遇到错误。真正奇怪的是,我能够在我的系统上的一个应用程序中成功安装它,但当我尝试在另一个应用程序上运行它时,出现以下错误:

undefined local variable or method `confirm_payment_url' for #<#<Class:0x103a2bf08>:0x103a2a298>

如果一个rails应用程序能够识别此方法,而另一个应用程序不能识别,那么什么类型的更改会产生这种结果?这件事真让我抓狂。谢谢你的帮助

您从未定义过
确认支付\u url
您的应用程序路由很可能出现错误,但是如果没有更多信息,今天很难做到这一点


在Braintree为透明重定向提供的文档中,这似乎是您希望在处理付款后将客户发送回的url,而Braintree未提供
confirm\u payment\u url
。您可以看到我正在引用的文档。

这两个应用程序之间有什么不同?它们是相同版本的Rails吗?是的-我的路线丢失了:match'payments/confirm'=>'payments#confirm',:as=>:confirm#u payment这很奇怪,因为我还有match'payments/new',:to=>'payments#new',:as=>:new#payment谢谢你的帮助!任何时候,我都很高兴能帮上忙。
<h1>Payment: $<%= h @amount %></h1>

<% if @result -%>
  <div style="color: red;"><%= h @result.errors.size %> error(s)</div>
<% end -%>

<%= form_for :transaction,
     :params => @result && @result.params[:transaction],
     :errors => @result && @result.errors.for(:transaction),
     :builder => ApplicationHelper::BraintreeFormBuilder,
     :url => Braintree::TransparentRedirect.url,
     :html => {:autocomplete => "off"} do |f| -%>
  <%= field_set_tag "Customer" do -%>
    <%= f.fields_for :customer do |c| -%>
  <div><%= c.label :first_name, "First Name" %></div>
  <div><%= c.text_field :first_name %></div>
  <div><%= c.label :last_name, "Last Name" %></div>
  <div><%= c.text_field :last_name %></div>
  <div><%= c.label :email, "Email" %></div>
  <div><%= c.text_field :email %></div>
 <% end -%>
 <% end -%>
 <%= field_set_tag "Credit Card" do -%>
 <%= f.fields_for :credit_card do |c| -%>
  <div><%= c.label :number, "Number" %></div>
  <div><%= c.text_field :number %></div>
  <div><%= c.label :expiration_date, "Expiration Date (MM/YY)" %></div>
  <div><%= c.text_field :expiration_date %></div>
  <div><%= c.label :cvv, "CVV" %></div>
  <div><%= c.text_field :cvv %></div>
<% end -%>
<% end -%>
<%= hidden_field_tag :tr_data, Braintree::TransparentRedirect.transaction_data(
   :redirect_url => confirm_payment_url,         
   :transaction => {:type => "sale", :amount => @amount}
    ) %>
  <%= f.submit "Submit" %>
<% end -%>
  def confirm

@result = Braintree::TransparentRedirect.confirm(request.query_string)
if @result.success?
  render :action => "confirm"
else
  @amount = calculate_amount
  render :action => "new"
end
end