Ruby on rails 3 实施一项计划有很多:通过
我正在考虑使用“has_many:through”创建以下模型:Ruby on rails 3 实施一项计划有很多:通过,ruby-on-rails-3,model-associations,Ruby On Rails 3,Model Associations,我正在考虑使用“has_many:through”创建以下模型: class Contract < AR::Base has_many :clientlines has_many :codelines has_many :clients, :through => :clientlines has_many :codes, :through => :codelines end class clientlines < AR::Base belongs_t
class Contract < AR::Base
has_many :clientlines
has_many :codelines
has_many :clients, :through => :clientlines
has_many :codes, :through => :codelines
end
class clientlines < AR::Base
belongs_to :contract
belongs_to :client
end
class Client < AR::Base
has_many :clientlines
has_many :contracts, :through => :clientlines
end
class codeline < AR::Base
belongs_to :contract
belongs_to :code
units_alloc -------**I would like to add this attribute after this intermediate
end has been created?
class Code < AR::Base
has_many :codelines
has_many :contracts, :through => :codelines
end
我是否首先使用“rails生成模型契约authnum:string,client\u id:integer,st\u date:date,end\u date:date”创建模型。
然后在迁移之前填写所有关联
另外,我的理解是,当使用has_many:through关联时,所有连接表都是由rails自动创建的。什么时候会这样
最后,如**所示,我可以在代码行中使用此属性吗?我是否可以创建“rails生成迁移添加\u units\u alloc\u到\u代码行units\u alloc:number”以将此属性添加到联接表中?我还想知道我是如何声明数字的小数点后两位太多的
如果您有时间和意愿,请您对我提出的数据库设计发表意见好吗
谢谢
通过使用has_many:通过使用第三个模型在其他两个模型之间建立连接,rails不会自动构建该模型,您可以自己构建该模型并引用其他两个模型的外键
不要用复数来命名你的模特,总是用单数。如果你不能用单数来命名,那你就错了
创建模型的顺序应该无关紧要,rails生成了一些迁移,您可以在以后轻松修改这些迁移
那就是units_alloc属性,创建它时只需将它添加到模型中,就这么简单
对于2位小数,在迁移中使用类似于t.decimal:amount、:precision=>6、:scale=>2的内容,该示例给出了6位数字和2位小数
读这本书,它会帮你摆脱很多麻烦
谢谢@Andrei S,所以我需要创建代码线和客户线模型,并参考合同id和客户id?