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 %>

顧客、ライセンス、およびソフトウェアの 3 つのテーブルがあり (名前が悪いことはわかっています)、1 つのライセンスには多くの顧客と多くのソフトウェアが含まれています。

4

2 に答える 2

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>

あなたの説明から、顧客とライセンスがどのようにリンクされているかは不明です。1つのオプションは、顧客が多くのライセンスを持っている場合、ライセンスは1人のユーザーに属します。

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


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

別のオプションはHABTMです(「1つのライセンスには多くの顧客がいる」および「その特定の顧客に関連付けられたすべてのライセンスを示す表」と言ったので、これを示唆しています):

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 に答える
0

チュートリアルはやりましたか?

  1. あなたのテキストはあなたと矛盾しています: あなたは「1 つのライセンスには多くのソフトウェアがあります」と言っていますが、コードには「ライセンス l には 1 つのソフトウェアがあり、名前、タイトル、エディションを表示したい」と書かれています。
  2. belongs_to と has_many を使用します。あなたのコードはあなたが書いた最後の行の反対であるため、どのテーブルについては教えられません。ただし、これらのキーワードは、ドキュメントで検索して、それらがどのように機能し、どの移行を行う必要があるかを理解する必要があります。

次に、モデルで関係を作成した場合は、2 番目のコード部分に書き留めた方法でそれを呼び出すことができます。

于 2012-08-17T11:24:48.407 に答える