На моей странице dashboard
в моем приложении я хочу отобразить легенду карты, которая динамически заполняется в зависимости от значений, заданных для HTML, который отображает эту легенду.
Вот как должна выглядеть легенда как:
Я заполняю эту легенду, используя JavaScript; Моя JavaSCript функция возвращает массив вложенных хэшей, который будет выглядеть примерно так:
[
{title: 'Downtown Loft', color:'#ade8ad'},
{title: 'Midtown Mansion', color:'#bd95ff'}
]
Проблема
Чтобы выполнить sh, мне нужно иметь возможность отправьте приведенный выше массив из моего файла pages.js.erb
в мой файл pages_controller.rb
, в частности, в действие dashboard
. В этом методе контроллера я назначу данные из моего JavaScript переменной экземпляра с именем @calendar_legend
. Чтобы убедиться, что это работает, я вызову <%= @calendar_legend %>
в моем представлении dashboard.html.erb
и ожидаю его получения. чтобы показать массив ... к сожалению, это не работает.
Я пробовал render json: @calendar_legend
в моем контроллере, и я всегда получаю значение null
при просмотре этой страницы.
Вот как я пытался отправить данные на мой контроллер:
function calendarLegend(){
const legendarray = [
{title: 'Downtown Loft', color:'#ade8ad'},
{title: 'Midtown Mansion', color:'#bd95ff'}
]
$.ajax({
type:'POST',
url: 'pages/dashboard',
data: JSON.stringify(legendarray),
contentType: 'application/json'
});
};
$(document).ready(function(){
calendarLegend();
});
и вот как я пытался назначить их в моем контроллере
def dashboard
@calendar_legend = params[:legendarray]
render json: @calendar_legend
end
и на мой взгляд
<%= @calendar_legend %>
Это не сработало, как и любое другое решение, которое я нашел в Stackoverflow и на других сайтах.