无法在Rails中显示相关记录

时间:2014-07-31 18:40:57

标签: ruby-on-rails ruby loops

我正在开发一个有两个表的rails应用程序 - 客户和工作。客户可以拥有许多工作,每个工作都属于客户。我已经建立了相应的协会并开展工作。

我在显示与客户相关的工作时遇到问题。这是我在客户视图中的代码:

<%= @customer.jobs.each do |job| %>
  <%= job.id %>
<% end %>

我想要做的就是测试是否输出与该客户相关联的工作ID。它确实有效,但是,我得到的不仅仅是作为输出的作业ID - 这就是我所看到的:

1 [#<Job id: 1, job_number: nil, installation: "Yes", install_date: "10/10/10", delivery: "Yes", box_count: 25, room_type: "Kitchen", material: "Maple", exterior_colour: "Ginger Root", created_at: "2014-07-29 18:41:25", updated_at: "2014-07-29 19:58:59", customer_id: 1>] 

所以你可以看到它有效,但我不明白为什么我在[]中获得与该工作相关的附加信息。

我确定我的问题与命名有关,但这是我尝试过的唯一不会引发错误的版本。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

  

我不明白为什么我会获得相关的其他信息   在[]中完成这项工作。

您必须删除此行中的=

<%= @customer.jobs.each do |job| %>

应该是

<% @customer.jobs.each do |job| %>

小记

<% %> #Executes the Ruby code.

<%= %> #Prints the output.

答案 1 :(得分:1)

使用<%代替<%=进行周围循环:

<% @customer.jobs.each do |job| %>
  <%= job.id %>
<% end %>

.each为每个元素执行给定的块,然后返回它刚刚枚举的对象。因此,在第一行使用<%=会输出@customer.jobs.each

的返回值

答案 2 :(得分:0)

如果您转到app / db / schema.rb并查看jobs表,它将显示与该记录相关的所有字段。默认情况下会创建created_at和updated_at。