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 - Fatal编程技术网

Ruby on rails 3 联接表的额外字段

Ruby on rails 3 联接表的额外字段,ruby-on-rails-3,Ruby On Rails 3,我正在使用Rails 3.2构建一个Web应用程序。 我有三张桌子。项目、任务和文章 任务 has_many :articles has_many :items, :through => :articles 项目 has_many :articles has_many :tasks, :through => :articles 文章 belongs_to :task belongs_to :item 在联接表(文章)中,我得到了一个名为amount的额外字段。 创建关系时如何设

我正在使用Rails 3.2构建一个Web应用程序。 我有三张桌子。项目、任务和文章

任务

has_many :articles
has_many :items, :through => :articles
项目

has_many :articles
has_many :tasks, :through => :articles
文章

belongs_to :task
belongs_to :item
在联接表(文章)中,我得到了一个名为amount的额外字段。 创建关系时如何设置此字段

现在我这样做,但感觉不“对”


在你的例子中没有“感觉正确”这样的东西。很明显,当您创建文章时,您正在将item_amount作为参数传递,这与其他id相同。我看不出重构这段代码的原因。好的。每个任务都属于一个项目。你知道一种很好的方法来汇总属于任务(和项目)的每篇文章的数量吗?尝试过这个方法,但不是一个好主意:sum=@project.tasks.map{| task | task.articles.sum(:price)}。我不知道这个查询是否有效,但是试试看
@project.joins(:tasks=>[:articles]).sum('articles.price')
Article.create(item_id: self.item_id, task_id: self.id, amount: self.item_amount)