RailsCasts #002 dynamic find_by method【find_by 动态方法】

把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 method【find_by 动态方法】)