私はproducts_controllerと製品モデルという名前のコントローラーを作成しましたが、それをindex.html.erb and show.html.erb
呼び出すlocalhost:3000/products
とデータベースから詳細を取得します。同じページで、製品の詳細を明確に表示するためのリンクを提供しました。しかし、それはロードされていません。表示リンクをクリックすると、各製品の詳細を取得する必要があります。ただし、localhost:3000/products)、同じページに読み込まれます。localhost:3000/products の結果
Model Name Brand Name Price Discount Qty Available
Nokia Lumia Nokia 15000 5.0 25 Show
Samsung galaxy Nexus Samsung 45000 15.0 5 Show
Sony Experia Sony Ericsson 4500 1.0 10 Show
Nikon D5100 Nikon 25500 10.0 100 Show
Panasonic Lumix Panasonic 25500 10.0 104 Show
Olympus Granite Olympus 24520 12.0 45 Show
products_controller.rb
class ProductsController < ApplicationController
def index
@products = Product.select("model_name,brand_name, price, discount, qty_avaliable")
respond_to do |format|
format.html # index.html.erb
format.json { render json: @products }
end
end
#render :text => params and return false
def show
@product = Product.find_by_sql("select model_name,brand_name, price, discount, qty_avaliable from products where prod_id='PR1'")
respond_to do |format|
format.html # show.html.erb
format.json { render json: @product }
end
end
end
product.rb
class Product < ActiveRecord::Base
attr_accessible :prod_id, :model_name, :brand_name, :price, :discount, :qty_avaliable
end
index.html.erb
<p id="notice"><%= notice %></p>
<h1>Products List</h1>
<table>
<tr>
<th>Model Name</th>
<th>Brand Name</th>
<th>Price</th>
<th>Discount</th>
<th>Qty Available</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @products.each do |product| %>
<tr>
<td><%= product.model_name %></td>
<td><%= product.brand_name %></td>
<td><%= product.price %></td>
<td><%= product.discount %></td>
<td><%= product.qty_avaliable %></td>
<td><%= link_to 'Show', Product %></td>
</tr>
<% end %>
</table>
show.html.erb
<p prod_id="notice"><%= notice %></p>
<p>
<b>Model Name:</b>
<%= @product.model_name %>
</p>
<p>
<b>Brand Name:</b>
<%= @product.brand_name %>
</p>
<p>
<b>Price:</b>
<%= @product.price %>
</p>
<p>
<b>Discount:</b>
<%= @product.discount %>
</p>
<p>
<b>Quantity:</b>
<%= @product.qty_avaliable %>
</p>