如何在默认值以外的其他目录中创建rails事件控制器:
<script src="https://checkout.stripe.com/checkout.js"></script>
<script>
var handler = StripeCheckout.configure({
key: 'pk_test_******************',
image: '/img/documentation/checkout/marketplace.png',
token: function(token) {
/*$.post("php/charge.php",{stripeToken:token.id},function(data,status){
console.log("Data: "+ data+"\nStatus: "+status);
});*/
alert(token.used);//alerts false
$.post("php/charge.php",{stripeToken:token.id});
alert(token.used);// still alerts false
}
});
$('#myButton').on('click', function(e) {
// Open Checkout with further options
handler.open({
name: 'Demo Site',
description: '2 widgets',
currency: "cad",
amount: 2000
});
e.preventDefault();
});
// Close Checkout on page navigation
$(window).on('popstate', function() {
handler.close();
});
</script>
我需要在<?php
require_once('config.php');
$token = $_POST['stripeToken'];
$customer = \Stripe\Customer::create(array(
'email' => 'test@test.com',
'card' => $token
));
//try {
$charge = \Stripe\Charge::create(array(
"amount" => 1000, // amount in cents, again
"currency" => "cad",
"source" => $token,
"description" => "Example charge")
);
//}catch(\Stripe\Error\Card $e) {
// The card has been declined
//}
?>
我创建了app/controllers/events_controller.rb
子目录,并在终端中为app/controllers/api/events_controller.rb
做了api。当我创建控制器时,它仍然以默认api
生成。
感谢。
答案 0 :(得分:1)
您可以命名控制器(生成如下:rails g controller API::Events
)。
将您的控制器放在api
目录中的controllers
目录中,并将控制器的类命名为:
class API::EventsController < ApplicationController
此处讨论的更多详细信息:https://stackoverflow.com/a/9946410/1026898
如果这不是您想要做的,那么rails往往倾向于不将该控制器放在不同的目录中。
这样做没有任何损害,这有点奇怪。默认情况下,rails生成器用于将控制器放在常规目录中。
如果要更改生成位置,则必须更新生成器。
答案 1 :(得分:0)
使用rails generator执行此操作:
rails g controller API::Events