在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Active Record使用基本的ORM模式:表映射成类,行映射成为对象,列映射成对象的属性。与很多大量使用配置的ORM库不同,Active Record最小化了配置。想象一下,有一个使用Active Record的程序把Mysql数据库中的orders表转换到类,通过制定的ID查找到order,设定order的名称,然后保存回数据库: require "rubygems" require_gem "activerecord" ActiveRecord::Base.establish_connection(:adapter => "mysql", :host => "localhost", :database => "railsdb") class Order < ActiveRecord::Base end order = Order.find(123) order.name = "Dave Thomas" order.save 在上面的例子里不需要任何配置,Active Record为我们做了这些事情,下面我们来看看ActiveRecord是怎样工作的。 表和类 当你创建了一个ActiveRecord::Base类的子类,Active Record假定表名是复数的,而类名是单数的,当类名包括多个单词时,表名被假定为单词间带有下划线,复数形式不规则,例如: 类名 表名 类名 表名 Order orders LineItem line_items TaxAgency tax_agencies Person people Diagnosis diagnoses Quantity quantities Batch batches Datum data 默认的,Active Record的表名是复数的,类名是单数的,如果你不太习惯,可以通过设置一个全局标记来禁用它,在config目录的environment.rb文件中设置: ActiveRecord::Base.pluralize_table_names = false 单复数规则可以对付大部分情况,对于一些特殊情况,Active Record允许我们覆盖默认的生成的表名,使用set_table_name命令,例如: class Sheep < ActiveRecord::Base set_table_name "sheep" # Not "sheeps" end class Order < ActiveRecord::Base set_table_name "ord_rev99_x" # Wrap a legacy table... end |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论