내 응용 프로그램의 경우 사용자가 있습니다. 균형 결제를 활용하여 사용자가 나중에 사용할 수 있도록 신용 카드 정보를 저장할 수있게하려고합니다. 나는 가이드로 아래 두 개의 링크를 따라 현재 다음과 같은 오류가 있습니다 : 균형 잡힌 지불 - 라우팅 오류
Routing Error
No route matches [POST] "/store_credit_card"
내가
GIST 및
Rails form submit handler not being executed이 따랐다.
balanced_controller.rb
은 -_credit_card_form.html.haml
를 생성 - 생성app>view>balanced
credit_card_submission.js
아래에 넣어 - 생성과의 자리 표시 자 텍스트를 대체 내 사용자 모델- 에
app>assets>javascript
- 추가 필드
:balanced_account_uri string
아래에 넣어. 균형 시장을위한 js 파일 url - balanced_controlle의 메소드에 대해 routes.rb를 업데이트했습니다. r.rb
누군가가 왜 작동하지 않는지 알고 있습니까?
routes.rb
resources :users do
resources :balanced do
member do
post :store_credit_card, :create_balanced_account
end
end
end
보기/사용자/edit.html.erb
<div class = "container">
<script type="text/javascript" src="https://js.balancedpayments.com/v1/balanced.js"></script>
<script type="text/javascript">
balanced.init('YOUR MARKETPLACE URI HERE');
</script>
<%= render 'balanced/credit_card_form' %>
</div>
보기/균형/_credit_card_form.html.haml
= form_tag "/store_credit_card", :method => :post, :id => "credit-card-form", :class => "form-horizontal" do
.control-group
= label_tag "cc-number", "Card Number", :class => "control-label"
.controls
= text_field_tag "cc-number", nil, :placeholder => "Enter Credit Card Number", :class => "cc-number", :autocomplete => "off"
.control-group
= label_tag "cc-em", "Expiration", :class => "control-label"
.controls
= text_field_tag "cc-em", nil, :placeholder => "Expiration Month", :class => "cc-em", :autocomplete => "off"
= text_field_tag "cc-em", nil, :placeholder => "Expiration Year", :class => "cc-ey", :autocomplete => "off"
.control-group
= label_tag "cc-csc", "Security Code", :class => "control-label"
.controls
= text_field_tag "cc-csc", nil, :placeholder => "Security Code", :class => "cc-csc", :autocomplete => "off"
.control-group
.controls
= submit_tag "Submit", :class => "btn btn-primary btn-large"
자산/자바 스크립트/
var marketplaceUri = 'YOUR MARKETPLACE URI HERE';
var requestBinUrl = '/store_credit_card'
var debug = function(tag, content) {
$('<' + tag + '>' + content + '</' + tag + '>').appendTo('#result');
};
try {
balanced.init(marketplaceUri);
} catch (e) {
debug('code', 'balanced.init error!');
}
function balancedCallback(response) {
var tag = (response.status < 300) ? 'pre' : 'code';
debug(tag, JSON.stringify(response));
switch(response.status) {
case 201:
console.log(response.data);
var $form = $("#credit-card-form");
var card_token_uri = response.data['uri'];
$('<input>').attr({
type: 'hidden',
value: card_token_uri,
name: 'balancedCreditCardURI'
}).appendTo($form);
$form.attr({action: requestBinUrl});
$form.get(0).submit();
break;
case 400:
console.log(response.error);
break;
case 404:
console.log(response.error);
break;
}
}
var tokenizeCreditCard = function(e) {
e.preventDefault();
var $form = $('#credit-card-form');
var creditCardData = {
card_number: $form.find('.cc-number').val(),
expiration_month: $form.find('.cc-em').val(),
expiration_year: $form.find('.cc-ey').val(),
security_code: $form.find('.cc-csc').val()
};
balanced.card.create(creditCardData, balancedCallback);
};
$(function(){
$('#credit-card-form').submit(tokenizeCreditCard);
});
balanced_controller.rb
class BalancedController < ApplicationController
def create_balanced_account
current_user.balanced_account_uri = Balanced::Marketplace.my_marketplace.create_account(:email => current_user.email, :type => 'person').uri
current_user.save
# add a redirect to the desired path
redirect_to root_url
end
def store_credit_card
balanced_account = Balanced::Account.find(current_user.balanced_account_uri)
balanced_account.add_card(params[:balancedCreditCardURI])
# add a redirect to the desired path
redirect_to root_url
end
def store_bank_account
balanced_account = Balanced::Account.find(current_user.balanced_account_uri)
balanced_account.add_card(params[:balancedBankAccountURI])
# add a redirect to the desired path
redirect_to root_url
end
def process_payment
balanced_account = Balanced::Account.find(current_user.balanced_account_uri)
account.debit(
:amount => 1000, # or params[:amount]
:description => "Balanced Payments transaction",
:appears_on_statement_as => "Balanced Payments")
# add a redirect to the desired path
redirect_to root_url
end
end
저는 루비가 아니지만 라우팅 엔진에 경로를 등록 했습니까? – griegs