这两天的收获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工作总结有点杀。

 

 

posted @ 2009-11-21 10:31  ninahan  阅读(...)  评论(... 编辑 收藏