>我正在尝试从 ruby 的索引处传递一个值:
在用户.rb 文件中:
list = [{:date=>"07 Mar", :price => "1000,00", :fruit=>"Orange"},
{:date=>"07 Mar", :price => "2000,00", :fruit=>"Apple"}]
在full_calendar.js中对 Js :
dayRender:function(date, cell){
var array = <%= j @list.to_json %>;
$(cell).html('<span>' + array + '</span>');
},
在完整的日历中,我无法让它工作。到目前为止,我已经尝试了很多不同的选项,但找不到任何解决方案来访问索引 0、1 或 2 处的值之一......
有什么想法吗?
您需要拆分服务器和客户端部分并对其进行测试。 第一个 Ruby:您将需要这样的东西,首先在单独的 Ruby 脚本中对其进行测试。
require 'json'
@list = [{:date=>"07 Mar", :price => "1000,00", :fruit=>"Orange"}, {:date=>"07 Mar", :price => "2000,00", :fruit=>"Apple"}]
@list.to_json
# [{"date":"07 Mar","price":"1000,00","fruit":"Orange"},{"date":"07 Mar","price":"2000,00","fruit":"Apple"}]
然后是客户端部分:将 Ruby 代码放在可以在 javascript 中看到结果的地方。确保在行中的某处获得所需的 json。
dayRender:function(date, cell){
var array = <%=
require 'json'
@list = [{:date=>"07 Mar", :price => "1000,00", :fruit=>"Orange"}, {:date=>"07 Mar", :price => "2000,00", :fruit=>"Apple"}]
@list.to_json
%>;
console.log(array);
$(cell).html('<span>' + array + '</span>');
},
如果这有效,则需要测试您的 @list 变量在 erb 文件中是否已知。如果不专注于传递此变量,您的 erb 文件是否在正确的路径中?您的路线正确吗?等。
dayRender:function(date, cell){
var array = <%=@list.to_json %>;
$(cell).html('<span>' + array + '</span>');
},
另外:制作一些简单的测试脚本,您可以在其中提取问题,测试它而不必为其他影响而烦恼,最重要的是,如果您无法弄清楚,可以在此处发布。 你要求这个轨道,但我大部分时间都使用Sinatra,所以你必须对轨道做同样的事情。如果您不了解Sinatra,请将所有这些放在app.rb中并运行。
require 'sinatra' # gem install sinatra
require "sinatra/reloader" #so that you don't have restart the server after changes
require 'json'
get '/' do
@list = [{:date=>"07 Mar", :price => "1000,00", :fruit=>"Orange"}, {:date=>"07 Mar", :price => "2000,00", :fruit=>"Apple"}]
erb :index
end
__END__
@@ index
<script type="text/javascript" src="./jquery.js"></script>
<script>
$(document).ready(function(){
var array = <%=@list.to_json%>;
console.log(array);
});
</script>
<body>
</body>
是的,我在控制台中得到了你的json..