ROR的数据库关联

belongs_to


:autosave  如果把 :autosave 选项设为 true,保存父对象时,会自动保存所有子对象,并把标记为析构的子对象销毁。
:class_name  如果另一个模型无法从关联的名字获取,可以使用 :class_name 选项指定模型名。例如,如果订单属于顾客,                   但表示顾客的模型是 Patron,就可以这样声明关联
:counter_cache 选项可以提高统计所属对象数量操作的效率。
:dependent 选项的值有两个:
:destroy:销毁对象时,也会在关联对象上调用 destroy 方法;
:delete:销毁对象时,关联的对象不会调用 destroy 方法,而是直接从数据库中删除
:foreign_key  按照约定,用来存储外键的字段名是关联名后加 _id。
:inverse_of 选项指定 belongs_to 关联另一端的 has_many 和 has_one 关联名  ???
:polymorphic 选项为 true 时表明这是个多态关联
:touch 选项设为 true,保存或销毁对象时,关联对象的 updated_at 或 updated_on 字段会自动设为当前时间戳。
:validate 选项设为 true,保存对象时,会同时验证关联对象。该选项的默认值是 false,保存对象时不验证关联对象。

has_one、has_many


:as 选项表明这是多态关联  
:source 选项指定 has_many :through 关联的关联源名字。只有无法从关联名种解出关联源的名字时才需要设置这个选项。
:source_type 选项指定 has_many :through 关联中用来处理多态关联的关联源类型。
:through 选项指定用来执行查询的连接模型。has_many :through 关联是实现多对多关联的一种方式


has_and_belongs_to_many


:association_foreign_key   按照约定,在连接数据表中用来指向另一个模型的外键名是模型名后加 _id。:association_foreign_key 选项可以设置要使用的外键名
:join_table   如果默认按照字典顺序生成的默认名不能满足要求,可以使用 :join_table 选项指定





你可能感兴趣的:(ror)