Я пытаюсь сделать частичное использование Ajax, где я отправляю соответствующий объект Javascript в частичное, используя locals
. К сожалению, у меня возникли проблемы с отправкой объекта, и я продолжаю получать ошибку «неопределенная локальная переменная».Rails j render partial with locals
Контроллер:
class TransportationController < ApplicationController
respond_to :html, :js, :json
create.js.erb
function getRates(){
$.ajax({
...
(code cut out that's irrelevant to question, but this request succeeds)
...
success: function(json) {
json.prices.forEach(function(price){
$("#my_list").append("<%= j render :partial => 'my_item', :locals => {price: price} %>");
});
....
};
_my_item.html.erb:
....
<h1><%= price.display_name %></h1>
....
Ошибка: (NameError - неопределенная локальная переменная или метод `цена ')
Любая помощь в этом направлении была бы принята с благодарностью! Я думал, что делаю это правильно
Внутри функции Ajax, я делаю вызов внешнего API, который возвращает данные, которые я итерация, чтобы сделать частичное. Есть ли лучший способ сделать это, чем положить его в блок Ajax? – tim5046
Предлагается сделать этот вызов API внутри действия вашего контроллера и вызвать это действие внутри вашего вызова Ajax. Определить все ваши переменные внутри действия контроллера и отобразить представление. – rakeshp