【问题标题】:Rails 4 Form Syntax for Stripe Bank Token -条纹银行令牌的 Rails 4 表单语法 -
【发布时间】:2014-09-03 03:26:26
【问题描述】:

我正在建立一个市场并有一个表格来收集卖家的银行账户详细信息,以便我们可以转移付款。

其中一个条带参数是卖家名称,它是表单上的输入。当我提交表单时,控制器仅在名称已存储在数据库中时才读取名称(即,如果我在 db 中手动输入名称,然后运行表单)。如果名称尚不存在,则会提示我需要输入名称来创建条带令牌。

如何更改表单/方法,以便在用户点击提交时名称可用于条带化?

这是我的更新方法:错误与 :name => current_user.bankaccname 一致。这是下面粘贴的表单中的输入。

def update

    Stripe.api_key = ENV["STRIPE_API_KEY"]
      token = params[:stripeToken]

      recipient = Stripe::Recipient.create(
        :name => current_user.bankaccname,
        :type => "individual",
        :bank_account => token
        )

      current_user.recipient = recipient.id
      current_user.save

    respond_to do |format|
      if @user.update(user_params)
        format.html { redirect_to edit_user_url, notice: 'Your account was successfully updated.' }
      else
        format.html { render action: 'edit' }
      end
    end
  end

我的表格:

<%= form_for @user, url: user_path, html: { method: :put } do |f| %>
     <div class="form-group">
      <%= f.label :name %><i> (as it appears in your bank account)</i>
      <%= f.text_field :bankaccname, class:"form-control" %>
     </div>

 <div class="form-group">
      <%= label_tag :country %>
      <%= text_field_tag :country, nil, { :name => nil, :'data-stripe' => "country", class: "form-control" } %>
    </div>
    <div class="form-group">
      <%= label_tag :routing_number %>
      <%= text_field_tag :routing_number, nil, { :name => nil, :'data-stripe' => "routingNumber", class: "form-control" } %>
    </div>
    <div class="form-group">
      <%= label_tag :account_number %>
      <%= text_field_tag :account_number, nil, { :name => nil, :'data-stripe' => "accountNumber", class: "form-control" } %>
    </div>

     <div class="form-group">
        <%= f.submit "Submit", class:"btn btn-primary" %>
     </div>

<% end %>

【问题讨论】:

  • 那么问题出在哪里。?如果不存在,您可以在表单中手动输入bankaccname?,然后提交。
  • 我的意思是,如果我去控制台并在用户模型中输入银行账户名称,然后提交表单,它就可以工作。所以条带从数据库中读取名称,而不是通过表单。有没有办法可以将名称保存在 db 中,然后调用 stripe 函数?
  • 你可以写 :name => current_user.bankaccname || user_params["bankaccname"]
  • 是 current_user 和 @user 是一样的。?
  • 是的。所以我不需要指定current_user?另外,我将银行帐号和路由号码直接传递给条带而不存储它。有没有办法调用这些变量?我想在表单上方显示当前帐户数据。

标签: ruby-on-rails stripe-payments


【解决方案1】:

检查一下,它更加优化,它只调用一次 db(我猜)。 它也将解决您的上述问题。

def update
    @user.attributes = user_params
    Stripe.api_key = ENV["STRIPE_API_KEY"]
      token = params[:stripeToken]

      recipient = Stripe::Recipient.create(
        :name => @user.bankaccname,
        :type => "individual",
        :bank_account => token
        )

     @user.recipient = recipient.id
     respond_to do |format|
      if @user.save
        format.html { redirect_to edit_user_url, notice: 'Your account was successfully updated.' }
      else
        format.html { render action: 'edit' }
      end
    end
  end

【讨论】:

    猜你喜欢
    • 2014-03-13
    • 2017-01-30
    • 2013-11-06
    • 2019-04-14
    • 2014-01-10
    • 2021-02-03
    • 2022-11-18
    • 1970-01-01
    • 2017-05-12
    相关资源
    最近更新 更多