Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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 - Fatal编程技术网

Ruby on rails 如何在';指数';看法

Ruby on rails 如何在';指数';看法,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有3个与这个问题相关的表格:“djobs”、“rigs”和“摄影师”。一个DJO有很多装备,一个装备有一个摄影师。目前,在我的djob索引屏幕上,我有一个表格,其中列出了djob值和装备值,但我不知道如何显示摄影师值 我不确定从哪里开始,所以我所做的只是确保模型正确关联 这是我的密码: djobs控制器: def index_photography @djobs = Djob.order(:id).joins(:rigs, :photographers) end djobs模型: cla

我有3个与这个问题相关的表格:“djobs”、“rigs”和“摄影师”。一个DJO有很多装备,一个装备有一个摄影师。目前,在我的djob索引屏幕上,我有一个表格,其中列出了djob值和装备值,但我不知道如何显示摄影师值

我不确定从哪里开始,所以我所做的只是确保模型正确关联

这是我的密码:

djobs控制器:

def index_photography
  @djobs = Djob.order(:id).joins(:rigs, :photographers)
end
djobs模型:

class Djob < ActiveRecord::Base
  has_many :rigs
  has_many :photographers, :through => :rigs

  accepts_nested_attributes_for :rigs, allow_destroy: true
  accepts_nested_attributes_for :photographers
end
classdjob:rigs
接受:钻机的\u嵌套\u属性\u,允许\u销毁:true
接受\u嵌套的\u属性\u:摄影师
结束
djobs索引视图:

<tbody>
  <% @djobs.each do |djob| %>
    <tr>
      <td><%= link_to 'Edit', edit_djob_path(djob, q: params[:q], :type => "photography") %></td>
      <td class="dotted" ><%= djob.jobtype %></td>
      <td class="dotted" ><% djob.rigs.each do |rig| %><%= rig.name %></br><% end %></td>
      <td class="dotted" ><% djob.rigs.photographers.each do |photographer| %><%= photographer.name %></br><% end %></td>
    </tr>
  <% end %>
</tbody>

“摄影”)%%>


钻机型号:

class Rig < ActiveRecord::Base
  belongs_to :djob
  has_one :photographer

  accepts_nested_attributes_for :photographers
end
class-Rig
摄影师模型:

class Photographer < ActiveRecord::Base
  belongs_to :rig
end
class摄影师
这段代码给了我一个错误:“没有为‘摄影师’这个名字找到关联。它已经被定义了吗?”。我只想让表格显示摄影师与特定装备相关的姓名

编辑:我尝试了下面答案中的建议代码,并将其用作我的代码:

<td class="dotted" ><% djob.photographers.each do |photographer| %><%= photographer.name %></br><% end %></td>

我还修复了rigs和djobs的关联模型代码


虽然它没有给我任何错误,因为我以前,有没有摄影师显示在所有。现在完全是空白。我不知道如何解决这个问题。我知道事实上,摄影师与djob相关的钻机相关。钻机正在展示。所以我不知道为什么摄影师根本没有为我出现。我乐于接受新思想。

我想问题就在这里


可能应该是(显示所有与djob相关的摄影师)



为每个钻机显示一个摄影师


出现错误的原因是,您的
djob
模型有许多
摄影器
(复数形式),但rig只有一个
摄影器

,在我看来,“双重嵌套属性值”似乎不是一件事。我可能会说得非常糟糕。我不太确定该用哪个术语。我的意思是显示与已经关联的表关联的表中的数据,如果这有意义的话。