2

我的 Rails 应用程序中存在一对多关系:

  • 我有一个可以有许多设备的用户类
  • 我有一个属于用户的设备类

我的模型是这样设计的:

class User < ActiveRecord::Base
  has_many :devices
end

class Device < ActiveRecord::Base
  belongs_to :user
end

关于视图,当我想显示所有用户并列出他们关联的设备时,我使用以下代码:

<%= user.devices.each do |device| %>
  <%= device.id %>
<% end %>

输出是:(现在只有 1 个设备)

1 #<Device:0x101f45e50>

我不明白为什么

#<Device:0x101f45e50>

出现在 id 之后

4

2 回答 2

1

替换等号

<% user.devices.each do |device| %>
  <%= device.id %>
<% end %>
于 2012-06-06T19:32:32.097 回答
1

为了提供更多上下文以便您知道发生这种情况的原因,=解析输出并在生成的 HTML 中显示语句的结果,其中-解析行但不显示结果 - 因为 ruby​​ 在每个新语句都会传递一个结果,你必须把你的=-放在正确的位置。

Documentation is your friend (this is for HAML, but is still a good explanation)

于 2012-06-06T19:41:33.847 回答