Неопределенный метод `card_number 'для - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь создать форму кредитной карты с помощью Stripe API.Я не должен переносить db для формы карты, поэтому мне просто нужно отправить информацию о кредитной карте в Stripe напрямую.

Я использую gem 'gon' и некоторые файлы JS.Это ссылка для разработки этого.https://medium.com/@ThatGuyTinus/stripe-connect-rails-part-2-9751c0e553f9

Произошла ошибка:

неопределенный метод `номер_карты 'для

Просмотры (views / users / payment.html.erb):

<%= include_gon %>
<section class="registerCommunity">
  <div class="wrapper">
    <h2>Set up credit card</h2>
    <%= form_for(@user, html: {class:'add-card'}) do |f| %>
      <div class="block">
        <%= f.hidden_field :stripe_temporary_token %>
        <div class="formItem">
          <%= f.label :card_number %>
          <div class="formInput"><%= f.text_field :card_number, placeholder: "Enter card number", data: {stripe: 'number'} %></div>
        </div>
        ・・・

Контроллеры (контроллеры / application_controller.erb):

class ApplicationController < ActionController::Base
  before_action :assign_env_variable

  # Overwriting the sign_out redirect path method
  def after_sign_out_path_for(resource)
    new_user_session_path
  end

  def assign_env_variable
    gon.stripe_key = ENV['PUBLISHABLE_KEY']
  end
end

Представления (views / layouts / application.html.erb):

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://js.stripe.com/v2/"></script> 

    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
    <%= Gon::Base.render_data %>
  </head>

1 Ответ

0 голосов
/ 27 января 2019

Я мог бы решить, удалив f..

До:

    <div class="formItem">
      <%= f.label :card_number %>
      <div class="formInput"><%= f.text_field :card_number, placeholder: "Enter card number", data: {stripe: 'number'} %></div>
    </div>

После того, как:

    <div class="formItem">
      <%= f.label :card_number %>
      <div class="formInput"><%= text_field :card_number, placeholder: "Enter card number", data: {stripe: 'number'} %></div>
    </div>
...