我是一个前端开发人员,对Ruby on Rails还不熟悉,所以请忽略我缺乏命名约定等。
我正在工作的网站使用RequireJS,我正在实现重复付款表,我可以得到所有工作,除了签名。
问题是,我生成的签名是由服务器生成的,因此它需要通过Ruby来获取生成事务表单的代码,但是由于application.js文件不是“erb”,因此它找不到值,这里是js:
Recurly.config({
subdomain: "ie-webinar"
, currency: "USD"
, country: "US"
});
Recurly.buildTransactionForm({
target: '#recurly-transaction'
, successURL: '/thank_you.html'
, signature:'<%= @signature %>'
});
下面是config>initialiser>recurly.rb中的ruby代码
signature = Recurly.js.sign(
:transaction => { :amount_in_cents => 19_99, :currency => 'USD' }
)
我怎样才能解决这个问题我尝试过在视图中创建一个.js.erb文件,但我不确定如何调用它或让它出现在网站标题中?
最佳答案
app/views/partials/_recurly_signature.html.erb
<%= javascript_tag do %>
Recurly.signature = "<%=j RECURLY_SIGNATURE %>";
<% end %>
config/initializer/recurly.rb
RECURLY_SIGNATURE = Recurly.js.sign(
:transaction => { :amount_in_cents => 19_99, :currency => 'USD' }
)
app/views/layouts/application.html.erb
<head>
= render :partial => "partials/recurly_signature"
</head>