zoukankan      html  css  js  c++  java
  • ror小记

    http://github.com/parasew/acts_as_tree

    rails s

    rake db:migrate

    rails g scaffold Category name:string memo:text

    rails g migrate add_categories_uuid_colums

    bundle install

    http://rubygems.org/

    https://github.com/liuqiang/webschool40/tree/master/vendor/

    http://www.douban.com/group/topic/8537205/

    Named Scopes 

    下面我们看看在Rails 3中named scopes的变化。假如,在Article下有两个named scopes,visible用来表示隐藏的文章,published用来表示已经发布的文章。 

    Ruby 代码
    1. #/app/models/article.rb  
    2.     class Article < ActiveRecord::Base    
    3.       named_scope :visible:conditions => ["hidden != ?"true]    
    4.       named_scope :published, lambda { {:conditions => ["published_at <= ?"Time.zone.now]} }    
    5.     end    


    上面的语句是Rails 2中定义named scoped的方式,在Rails 3中named scoped的语法稍微有点不同。首先是用scoped代替named scoped,其次,和find的变化相同,不再使用find的哈希参数,而是改用同名的方法,而conditions会变成where如下: 
    Ruby 代码
    1. #/app/models/article.rb  
    2.     class Article < ActiveRecord::Base    
    3.       scope :visible, where("hidden != ?"true)    
    4.       scope :published, lambda { where("published_at <= ?"Time.zone.now) }    
    5.     end    


    另外一个关于scope的新功能是可以通过scope创建scope,例如,我们希望创建一个叫做recent的scope,表示发布过并且没有 隐藏的文章列表,并且文章列表按照发布的降序排列。那么,我们就可以通过使用visible和pulished来实现如下: 
    Ruby 代码
    1. scope :recent, visible.published.order("published_at desc")    


    如上所示,我们就是通过将两个scopes连起来,并且添加一个排序的方法来创建scope的。而且,我们也可以通过在控制台调试我们的 scope,发现当我们调用Article.recent时,会返回一个ActiveRecord::NamedScope::Scope的对象,而这个 对象会和ActiveRecord::Relation有相似的功能,即lazy loading不是当即查询。如下: 
    Ruby 代码
    1. ruby-1.9.1-p378 > Article.recent  
    2.  => #<ActiveRecord::NamedScope::Scope:0x0000010318bd08 @table=#<Arel::Table:0x00000102740ea8   
    3.  @name="articles"@options={:engine=>#<Arel::Sql::Engine:0x00000102651900 @ar=ActiveRecord::Base>},   
    4.  @engine=#<Arel::Sql::Engine:0x00000102651900 @ar=ActiveRecord::Base>>, …  


    当我们查询所有时,我们将会看到对应的Article对象返回。(译者晓夜注:就是说在用的时候返回) 
    Ruby 代码
    1. ruby-1.9.1-p378 > Article.recent.all  
    2.  => [#<Article id: 1, name: "It's Ancient", published_at: "2010-01-01",   
    3.  hidden: false, created_at: "2010-02-22 20:35:42", updated_at: "2010-02-22 23:00:16">]  

    http://hi.baidu.com/hbxiao135/blog/item/58f773da137c93d7b6fd4893.html

  • 相关阅读:
    【leetcode】500. Keyboard Row
    【排序算法汇总】5类8种排序算法
    【leetcode】339. Nested List Weight Sum
    ArcCatalog中将SQLServer中的空间数据导入到Oracle库中
    初学ArcGIS API for JavaScript
    ArcGIS API for JavaScript开发环境配置
    shapefile与gdb中不能允许存在的几何错误
    C#中的Dictionary字典类介绍(转载)
    泛型Dictionary<string,string>的用法
    空间数据存储格式wkb和wkt(转载)
  • 原文地址:https://www.cnblogs.com/lexus/p/1862987.html
Copyright © 2011-2022 走看看