这两天的收获ruby篇
平台是师兄师姐他们搭好的,我以前用ruby级别很低,只会建立项目什么的,不过NetBeans有专门对ruby开发的简单平台。说它简单是因为它只是ruby的开发,没有其它语言开发环境。
具体建立一个项目后,在控制器里建立一个.rb文件,我写进去的只有数据库控制,具体程序:
def qianfeng
@station=Station .find(:all)
@sqlstr=Simulationresult.find_by_sql ("SELECT simulationresults.TimeStep,simulationresults.Station,simulationresults.R,points.X, points.Y "+
" FROM points , simulationresults "+
" where points.Station = simulationresults.Station" )
#@point=Point.find(:all)
# @simulation=Simulation.find(:all)
end
#后面是注释。
每个数据表都要在model里建立一个与数据库里数据表名相同的数据控制器.rb文件,其实很简单,鼠标右键,平台就自动建立了。
在视图里建立一个.rhtml文件
我在这里只写我用JavaScript写的读数据改为用ruby写的。
有两种方法:我用两种方法的原因是第二个数据表用第一种方法程序出不来,我觉得可能出在两个表的数据,或者是数据量太大导致结果出不来。
var station=<%=(@station.collect{|s|s.attributes}).to_json%>//将ruby变量变成json格式,js可以直接调用
var length=station.length;
for(var l=0;l<length;l++)
{
var y=station[l].X;
var x=station[l].Y;
var c = (station[l].Station).value+"<br>"+"纬度 <b>"+(station[l].X).value+"<br>"+"经度 <b>"+(station[l].Y).value;
map.addOverlay(createMarker(new GLatLng(x,y),c));
}
function getFromDB(){
var points=new Array();
var a=0;
var length=<mailto:%=@sqlstr.length>;
<%
for temp in @sqlstr
%>
points[a]=new Array(<%=temp.Y%>,<%=temp.X%>,<%=temp.TimeStep%>,<%=temp.R%>);
a++;
<%
end
%>
return points;
}
上面的第一个是转成了js可以直接用的数据。后面那个是在js里嵌入ruby代码直接使用ruby对象。
其实精髓就这些,不过搞了好些时间,刚开始转数据库也废了不少劲。access转mysql数据表的方法已经记录在另外一篇文章了。
下午还要开会,晚上回家,老弟打电话说妈做了牛肉汤让我回家吃,人生真美好呀,除了开会要讲PPT工作总结有点杀。