我正在开发一个有两个表的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>]
所以你可以看到它有效,但我不明白为什么我在[]中获得与该工作相关的附加信息。
我确定我的问题与命名有关,但这是我尝试过的唯一不会引发错误的版本。
有什么想法吗?
答案 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。