如何访问rails模型中CoffeeScript中创建的变量
How do I access a variable created in CoffeeScript in my rails model?
我正在rails 4应用程序上使用stripe创建客户帐户。
从本质上讲,我知道我捕获cc信息的coffeescript代码(如下)正在成功地与Stripe通信,因为令牌是为一张卡创建的(一旦创建,我就可以将其打印到屏幕上)。
此外,我的模型中有一个方法可以在Stripe中创建客户对象。它连接并显示在条纹中,当我尝试硬编码信用卡信息(即通过具有预设参数的块)时,卡信息显示在条纹上。
然而,我不知道如何将卡令牌从我的coffescript代码传递到我的模型(或控制器,或任何我真正可以使用它的地方)。如果有人能帮我,或者给我指一些关于它的医生,那将是惊人的!
这是我的coffeescript代码,其中令牌保存为"#subscription_stripe_card_token":
handleStripeResponse: (status, response) ->
if status == 200
$('#subscription_stripe_card_token').val(response.id)
$('#stripe_error').text(response.id)
$('#new_subscription')[0].submit()
else
$('#stripe_error').text(response.error.message)
$('input[type=submit]').attr('disabled', false)
这是我的模型,我试图访问它(未成功)(在save_with_payment方法中,调用Stripe::Customer.create,是我试图传递卡信息的地方):
class Subscription
include Mongoid::Document
belongs_to :user
field :plan, type: String
field :stripe_customer_token, type: String
attr_accessor :stripe_card_token
def save_with_payment(plan, email, name)
if valid?
customer = Stripe::Customer.create(description: name, email: email, plan: plan, card: stripe_card_token)
write_attribute(:stripe_customer_token, customer.id)
save!
end
rescue Stripe::InvalidRequestError => e
logger.error "Stripe error while creating customer: #{e.message}"
errors.add :base, "There was a problem with your credit card."
false
end
同样,其他一切都有效。目前,我假设它会传递一个"nil"值,但我不知道如何访问它。
你不能。CoffeeScript(编译为JavaScript)在用户的浏览器中运行。Rails在您的服务器上运行。他们无法访问彼此的状态。
它们之间可以进行的唯一通信形式是客户端启动的HTTP请求。
您需要通过AJAX将您的条纹令牌发送到服务器。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 为effect Composer创建GodRays效果过程
- 从javascript创建一个列表
- onkeyup无法动态创建多个文本区域
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何访问声音管理器2创建的声音对象
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- 使用 CoffeeScript 的类和 jquery.transit 创建一个回调循环
- 如何访问rails模型中CoffeeScript中创建的变量
- CoffeeScript 在 'for v in values' 中创建一个全局变量 'v',导致事件中的错误引用
- 如何在JavaScript中创建CoffeeScript风格的存在运算符
- WebStorm IDE文件监视coffeescript创建一个空文件
- 在Coffeescript中创建带有可选参数的匿名函数
- Node.js:使用CoffeeScript创建一个Express项目
- 在单击动态创建的元素coffeescript时绑定Class方法
- 在CoffeeScript中创建单例的首选方式
- 如何用CoffeeScript在同一个循环中创建两个数组
- 不能使用CoffeeScript在meteor中创建仅用于客户端的集合
- 如何创建一个someFileName.sqlite数据库使用sql.js没有NodeJs和Coffeescript,但只