美文网首页RailsCasts 译文
RailsCasts #002 dynamic find_by

RailsCasts #002 dynamic find_by

作者: liteng | 来源:发表于2016-03-28 22:34 被阅读0次

    RailsCasts中的视频讲的内容总结成文章,每个视频对应一片文章,希望可以帮助到那些想要学习RailsCasts 但又被英文阻碍的同学。


    find_by 动态方法

    @tasks = Task.find(:all, :conditions => ["complete=?", false])
    

    上面是一个普通的应用active record查询数据库的语句,在tasks表中查询complete字段为false的数据。
    在Rails中当然有更优雅的写法,那就是find_by 动态方法,故名思意, 动态方法是程序动态生成的方法,而非预定义的,Rails可以根据你模型字段的不同生成不同的动态方法。
    find_by动态方法的格式是

    Model.find_by_[attribute_name](attribute_value)
    Model.find_all_by_[attribute_name](attribute_value)
    

    这里的[attribute_name]你可以替换为模型对象里的任意字段名,而两者的却别就是第一中只返回符合条件的第一条数据, 第二种呢则返回符合查询条件的数据集。
    比如上面的例子,就可以写成

    @tasks = Task.find_all_by_complete(false)
    

    ps: 上面的find方法还是Rails2中的写法, Rails3后find方法有了变化, 不过上面讲的find_by动态方法还是可以用。

    相关文章

      网友评论

        本文标题:RailsCasts #002 dynamic find_by

        本文链接:https://www.haomeiwen.com/subject/vbjyqttx.html