我是一个前端开发人员,对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>

10-04 11:57