-2

私の Rails アプリケーションでは、データベースからデータを取得するコントローラーを作成しました。これには、次のようにモデルにパラメーターも含まれています。

問題は、views フォルダーに html ページがないことです。コントローラーを実行する必要がありますか? json形式の出力が必要です。htmlページはどのように作成され、json形式のデータはどこで確認できますか...

# shoppingDemo.rb (controller)
class ShoppingDemo < ApplicationController
  def index
    @lists=products.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

# products(model)
class products < Activerecord::Base
  attr_accessible :model_name, :brand_name, :price, :discount, :qty_available
end

HTMLページを作成したり、データベースからのデータをjson形式で表示したりするための次のステップは何ですか.

4

3 に答える 3

1

いくつかの問題を修正する必要があります。

1)モデル内

class Product

2)コントローラー内

@lists = Product.all

@products = Product.find(params[:id])

3)ルートを作成する必要がありますconfig/routes.rb

resources :products

インデックス、表示、新規、作成、更新、破棄アクションのルートを作成します。詳細はこちらをご覧ください

その後、httpリクエストを介して製品リストにアクセスhttp://localhost:3000/productsし、id=1で製品を表示できます。http://localhost:3000/products/1

于 2012-12-09T08:35:58.390 に答える
1

手動で行うだけです。shopping_demoこれを行うには、ビュー ディレクトリにフォルダーを作成するだけです。次に、shopping_demoディレクトリにindex.html.erbおよびshow.html.erbファイルを作成します。

json データにアクセスする場合は、 so のように .json 形式指定子を追加するだけですhttp://localhost:3000/path_to_resource/1.json。path_to_resource を、アクセスしようとしているリソースの名前に置き換えてください。

まず、shoppingDemo.rbファイルの名前をshopping_demo_controller.rbに変更します。次に、shopping_demo_controller.rbファイルで、クラス名をShoppingDemoControllerに変更します。最後に、これを routes.rb ファイルのresources :shopping_demoすぐ下に配置します。ShoppingDemo::Application.routes.draw do

于 2012-12-09T08:54:01.800 に答える
1

Rails は MVC フレームワークです。MVC はモデル ビュー コントローラーの略です。

あなたが言うhtmlはビューに存在します。

ShoppingDemo コントローラーのインデックス アクション用に、このファイルを作成します。

app/views/shoppingdemo/index.html.erb

内部に適切なコードを記述します。例えば

<% @lists.each do |list| %>
  <%= list %>
<% end %>

また、タイプミスがあります。モデルを呼び出すときは、最初の文字を大文字にする必要があります。

例えば代わり​​に

@lists = products.all #WRONG

行う

@lists = Product.all #Plural the first letter and singular for the model.
于 2012-12-09T13:26:11.617 に答える