【发布时间】:2020-03-18 18:15:20
【问题描述】:
在我的应用程序的dashboard 页面中,我想显示一个地图图例,该图例根据提供给显示此图例的 HTML 的值动态填充。
我正在使用 javascript 填充此图例;我的 JavaSCript 函数返回一个嵌套哈希数组,看起来像这样:
[
{title: 'Downtown Loft', color:'#ade8ad'},
{title: 'Midtown Mansion', color:'#bd95ff'}
]
问题
为了实现这一点,我需要能够将上面的数组从我的pages.js.erb 文件发送到我的pages_controller.rb 文件,特别是dashboard 操作。在这个控制器方法中,我会将 JavaScript 中的数据分配给一个名为 @calendar_legend 的实例变量
为了验证这是否有效,我将在我的dashboard.html.erb 视图中调用<%= @calendar_legend %> 并期望它显示数组...不幸的是这不起作用。
我已经在我的控制器中尝试了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 和其他各种网站上找到的任何其他解决方案一样无效。
【问题讨论】:
标签: javascript ruby ajax controller