Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 实施一项计划有很多:通过_Ruby On Rails 3_Model Associations - Fatal编程技术网

Ruby on rails 3 实施一项计划有很多:通过

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

我正在考虑使用“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_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?