0

目前在我看来,对于每个客户,我都有这个:

<p>
  <b>Companyname:</b>
  <%= @customer.companyname %>
</p>

<p>
  <b>Licensecontact:</b>
  <%= @customer.licensecontact %>
</p>

<p>
  <b>Email:</b>
  <%= @customer.email %>
</p>

<p>
  <b>Phone:</b>
  <%= @customer.phone %>
</p>

在此之下,我需要一个表格来显示与该特定客户相关的所有许可证。像这样的东西:

<% @licenses.each do |l| %>
<tr>
    <td><%= l.software.vendor %></td>
    <td><%= l.software.title %></td>
    <td><%= l.software.edition %></td>
    <td><%= l.amount %></td>
</tr>
<% end %>

我有三张表,客户、许可证和软件(我知道它们的名字很糟糕),一个许可证有很多客户和很多软件。

4

2 回答 2

0

你做过教程吗?

  1. 您的文字与您相矛盾:您说“一个许可证有很多软件”,但您的代码说“许可证 l 有一个软件,我想显示名称、标题和版本”。
  2. 使用belongs_to 和has_many。在哪些表上我不能告诉你,因为你的代码与你写的最后一行相反。但是您需要在文档中查找这些关键字,以了解它们是如何工作的以及要进行哪些迁移。

然后,如果您在模型中建立了关系,那么您可以按照您在第二个代码部分中写下它的方式来调用它。

于 2012-08-17T11:24:48.407 回答
0

您应该能够将这样的内容放入您的视图中:

<table>
  <tr>
    <th>Vendor</th>
    <th>Title</th>
    <th>Edition</th>
    <th>Amount</th>
  </tr>
  <% @customer.licenses.each do |l| %>
    <tr>
      <td><%= l.software.vendor %></td>
      <td><%= l.software.title %></td>
      <td><%= l.software.edition %></td>
      <td><%= l.amount %></td>
    </tr>
  <% end %>
</table>

根据您的描述,不清楚客户和许可证是如何联系在一起的。一种选择是客户有许多许可证,许可证属于一个用户:

class Customer < ActiveRecord::Base
  has_many :licenses
  # ...
end


class License < ActiveRecord::Base
  belongs_to :customer
  # ...
end

另一种选择是HABTM(你说过'一个许可证有很多客户'和'表格显示与该特定客户相关的所有许可证'这暗示了我):

class Customer < ActiveRecord::Base
  has_and_belongs_to_many :licenses
  # ...
end


class License < ActiveRecord::Base
  has_and_belongs_to_many :customers
  # ...
end
于 2012-08-17T12:07:06.243 回答