我有一个简单的视图,但Purchase
belongs to :client
。因此,要访问purchases
我需要提供client_id
。 :
$(document).ready(function() {
var purchases = new Vue({
el: '#purchases',
data: {
purchases: []
},
ready: function() {
var that;
that = this;
$.ajax({
url: 'clients/' + CLIENT_ID + '/purchases.json', // problem
success: function(res) {
console.log(res)
that.purchases = res;
}
});
}
});
});
如何访问ajax请求中的client_id
?我尝试了<%= @client.id %>
,但是对于nil:NilClass`它会收到错误undefined method
id'。
如何传递该变量?
答案 0 :(得分:3)
问题的答案是您无法直接在js函数中访问实例变量。这是因为js是一种客户端语言,只能在浏览器中运行,而ruby / rails是服务器端语言。
您可以在js中访问变量的唯一方法是将其作为html数据传递。例如,作为相应html.erb文件中的隐藏字段。
<%= hidden_field_tag('client_id', @client_id) %>
并以
的形式访问它client_id: $('#client_id').val()
在js文件中。