Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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 有多少通过了如何得到中间对象?_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 有多少通过了如何得到中间对象?

Ruby on rails 有多少通过了如何得到中间对象?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有三种型号 职位职位职位胜任能力 class JobRole has_many :job_role_competencies has_many :competencies, :through => :job_role_competencies end JobRoleCompetiences具有额外的字段-最小值比率 当我创建新模型时,我会分配一些能力,如JobRole.new(能力ID:[1,2]) 在这之后,我想分配最小的“比率”,但当我选中“JobRole.new(Capa

我有三种型号

职位职位职位胜任能力

class JobRole
  has_many :job_role_competencies
  has_many :competencies, :through => :job_role_competencies
end
JobRoleCompetiences具有额外的字段-最小值比率

当我创建新模型时,我会分配一些能力,如
JobRole.new(能力ID:[1,2])
在这之后,我想分配最小的“比率”,但当我选中“JobRole.new(Capability_ID:[1,2])。job_role_Capabilities(能力)”-没有-我如何获得(或构建)这个中间对象。

这是你想要的吗

@job_role = JobRole.new
[1, 2].each do |competency_id|
  @job_role.job_role_competencies.build(:min_rate => min_rate, :competency_id => competency_id)
end

保存后,您会在job_role_Capabilities中获得两条记录,分别为min_rate和Not-这是主要问题可能发生的情况-在after_create callback中更新值,但我希望在验证您的答案是否正确之前分配此值。我应该隐藏能力id并将其分配给某个临时变量,然后在验证之前执行@job\u role.job\u role\u capabilities.build(:min\u rate=>min\u rate,:capability\u id=>capability\u id),我很高兴知道它成功了。如果问题解决了,请不要忘记选择正确的答案!