Tengo una vista simple, pero la Purchase belongs to :client . Por lo tanto, para acceder a las purchases , necesito proporcionar un 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; } }); } }); }); ¿Cómo accedo al client_id en la solicitud ajax? Intenté <%= @client.id %> pero aparece el error id de undefined method para nil:NilClass`.
¿Cómo paso esa variable?
La respuesta a la pregunta es que no puede acceder a una variable de instancia directamente en una función js. Esto se debe a que js es un lenguaje del lado del cliente que solo se ejecuta en su navegador y ruby/rails es un lenguaje del lado del servidor.
La única forma en que puede acceder a la variable en js es pasándola como datos html. Por ejemplo, como un campo oculto en su archivo html.erb correspondiente.
<%= hidden_field_tag('client_id', @client_id) %>y accediendo a ella como
client_id: $('#client_id').val()en el archivo js.