在Ruby中创建控制器和模型之后的下一步是什么

时间:2012-12-11 10:10:17

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

我为我的应用程序创建了一个控制器和一个模型。我想以json格式获取数据。我在哪里可以看到我的输出?如果我运行控制器它没有响应。我列出了这些文件。最后,我想以json格式从数据库中获取products表中的数据。如何获取我的数据?

我的控制器:

class ShoppingDemo < ApplicationController

  def index
    @lists=Product.all;
    respond_to do |format|
      format.html
      format.json { render json: @lists}
    end
   end

   def show
    @products = products.find(params[:prod_id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @products }
    end
  end

end


My Model:

class product < Activerecord::Base
  attr_accessible :model_name, :brand_name, :price, :discount, :qty_available
end

show.html.erb


<p>
  <b>model_name:</b>
  <%= @products.model_name %>
</p>

<p>
  <b>Brand_name:</b>
  <%= @products.brand_name %>
</p>

<p>
  <b>Price:</b>
  <%= @products.price %>
</p>

<p>
  <b>Discount:</b>
  <%= @products.discount %>
</p>

<p>
  <b>Quantity:</b>
  <%= @products.qty_available %>
</p>

2 个答案:

答案 0 :(得分:1)

首先,您在show方法中的查询完全错误。
写下显示方法如下:

def show
  @products = Product.find(params[:prod_id])

  respond_to do |format|
    format.html # show.html.erb
    format.json { render json: @products }
  end
end

在show.html.erb中写下<%= @products.to_json %>
否则,您可以在网址中添加 .json 扩展名进行检查。例如:http://localhost:3000/shopping_demos/1.json

答案 1 :(得分:0)

在products_controller.rb文件中写下以下内容。

  def index
   @products = Product.all

   respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @products }
   end
  end
  def show
    @product = Product.find(params[:id])

    respond_to do |format|
     format.html # show.html.erb
     format.json { render json: @product }
     end
  end


在routes.rb文件中添加以下行 resources :products

然后继续。

我发现你并不太了解铁轨上的红宝石。请查看该文档。
http://guides.rubyonrails.org/