如何在rails上的ruby中显示数据库中的单个记录

时间:2013-12-17 15:01:55

标签: ruby-on-rails ruby ruby-on-rails-3

我对rails上的ruby非常新,正在开发目录应用程序。我已经设置了我的数据库,并添加了一些条目。目前在我的主页面上显示了我数据库中的所有数据,但我如何才能显示一条记录。这是我的代码:

<% if notice %>
    <p id="notice"><%= notice %></p>
<% end %>

<h1>Bann.com - slightly smaller than Amazon!</h1>

<% @products.each do |product| %>
  <div class="entry">

<table border="1">
    <tr>
        <th>Header 1</th>
        <th>Header 2</th>
    </tr>
    <tr>
        <td><%= image_tag(product.image_url) %></td>
        <td><%= image_tag(product.image_url) %></td>
    </tr>
    <tr>
        <td><h3><%= product.title %></h3>
            <div class="price_line">
              <span class="price"><%= number_to_currency product.price, :unit=>'&pound;' %></span>
            </div>
              </div></td>
        <td>row 2, cell 2</td>
    </tr>
</table>
<% end %>

3 个答案:

答案 0 :(得分:2)

现在,您正在循环@products.each do |product|循环中的所有产品。如果您只想显示其中的第一个,您可以:

<% if notice %>
  <p id="notice"><%= notice %></p>
<% end %>

<h1>Bann.com - slightly smaller than Amazon!</h1>
<% product = @products.first %>
<div class="entry">
  <table border="1">
    <tr>
      <th>Header 1</th>
      <th>Header 2</th>
    </tr>
    <tr>
      <td><%= image_tag(product.image_url) %></td>
      <td><%= image_tag(product.image_url) %></td>
    </tr>
    <tr>
      <td>
        <h3><%= product.title %></h3>
        <div class="price_line">
          <span class="price"><%= number_to_currency product.price, :unit=>'&pound;' %></span>
        </div>
      </td>
      <td>row 2, cell 2</td>
    </tr>
  </table>
</div>

我也修好了你的div。当你的开始div在它之前时,你的桌子中间有一个接近的div。

答案 1 :(得分:0)

<% @products.each do |product| %>循环遍历Product表中的所有数据。

如果您打开终端并输入rake routes,您将看到所有可用路线的列表。可能你会看到名为'product_path'的列表。您看到的内容取决于config/routes.rb文件中的内容。您可以阅读有关here的更多信息。

在您看来,如果您在每个循环中编写<% link_to "THIS PRODUCT!", product_path(id: product.id) %>,您将被定向到该特定产品的展示页面(只要您有一个视图)。从那里,您可以开始构建产品展示页面。我建议您check this guide out,然后查找Michael Hartl tutorial。两者都非常有用:)

答案 2 :(得分:0)

<% @products.each do |product| %>

正在遍历@products数组的所有元素,这些元素在控制器中定义。

如果您只想显示一个产品,首先必须确定哪个产品,然后从控制器中的数据库中检索它,并使用它来设置变量,例如@product,然后可用在你看来。

祝你好运。