私はプロジェクトに取り組んでおり、レールに非常に慣れていません。
私は正確に何が間違っているのか分かりません。このエラーが発生します。
製品の NoMethodError#index
初期化されていない定数 ProductsController::Offer
基本的に、実装しようとしている機能があります。
私の製品テーブルには、予約価格と呼ばれる列があります。ユーザーに製品ページのフォームに番号を送信してもらい、予約価格と比較して検証します。受け入れられた場合はカートに追加されます。そうでない場合は、より高いオファーを入力してください、
問題は、モデルとコントローラーを連携して動作させる方法を理解できないように見えることです。
私は一週間ずっとこれにいましたが、まだ手がかりがありません。
NilClass:Class の未定義のメソッド「model_name」というエラーが発生しているビューページに関して、誰かが私のコードを見て何が欠けているかを確認できるかどうか疑問に思いました。フォームに正しいモデルを入力したと確信していました。それを機能させることができます。残りはすばやく完了できますが、何が欠けているのかわかりません。
offer controller.rb クラス OffersController < ApplicationController
attr_accessible :product、:offer、:reserve_price
def new @offer = Offer.new end
end
model.rbを提供
class Offer < ActiveRecord::Base
属している商品: 商品がたくさんあります: 予約価格
attr_accessible :product、:offer、:reserve_price
validates_presence_of :offer 検証 :ensure_meets_reserve_price
private def ensure_meets_reserve_price if amount < self.product.reserve_price errors.add(:amount, "予約価格を満たしていません") end end
private def reserve_price product.reserve_price end
def your_offer @your_offer = Offer.new
終わり
def new @offer = Offer.new = :your_offer end
end
製品インデックス ビュー ファイル
class ProductsController < ApplicationController
before_filter :authenticate, :except => [:index, :show]
# /products を取得 # /products.xml を取得
def index @offer = Offer.new
@products = Product.search(params[:search_query])
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @products }
end
終わり
# GET /products/1 # GET /products/1.xml def show
@product = Product.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @product }
end
終わり
# GET /products/new # GET /products/new.xml def new @product = Product.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @product }
end
終わり
# GET /products/1/edit def edit @product = Product.find(params[:id]) end
# POST /products # POST /products.xml def create @product = current_user.products.new(params[:product])
respond_to do |format|
if @product.save
format.html { redirect_to(@product, :notice => 'Product was successfully created.') }
format.xml { render :xml => @product, :status => :created, :location => @product }
else
format.html { render :action => "new" }
format.xml { render :xml => @product.errors, :status => :unprocessable_entity }
end
end
終わり
# PUT /products/1 # PUT /products/1.xml def update @product = Product.find(params[:id])
respond_to do |format|
if @product.update_attributes(params[:product])
format.html { redirect_to(@product, :notice => 'Product was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @product.errors, :status => :unprocessable_entity }
end
end
終わり
# DELETE /products/1 # DELETE /products/1.xml def destroy @product = Product.find(params[:id]) @product.destroy
respond_to do |format|
format.html { redirect_to(products_url) }
format.xml { head :ok }
end
終了 終了
製品 controller.rb
class ProductsController < ApplicationController
before_filter :authenticate, :except => [:index, :show]
# GET /products
# GET /products.xml
def index
@products = Product.search(params[:search_query])
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @products }
end
end
# GET /products/1
# GET /products/1.xml
def show
@product = Product.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @product }
end
end
# GET /products/new
# GET /products/new.xml
def new
@product = Product.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @product }
end
end
# GET /products/1/edit
def edit
@product = Product.find(params[:id])
end
# POST /products
# POST /products.xml
def create
@product = current_user.products.new(params[:product])
respond_to do |format|
if @product.save
format.html { redirect_to(@product, :notice => 'Product was successfully created.') }
format.xml { render :xml => @product, :status => :created, :location => @product }
else
format.html { render :action => "new" }
format.xml { render :xml => @product.errors, :status => :unprocessable_entity }
end
end
end
# PUT /products/1
# PUT /products/1.xml
def update
@product = Product.find(params[:id])
respond_to do |format|
if @product.update_attributes(params[:product])
format.html { redirect_to(@product, :notice => 'Product was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @product.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /products/1
# DELETE /products/1.xml
def destroy
@product = Product.find(params[:id])
@product.destroy
respond_to do |format|
format.html { redirect_to(products_url) }
format.xml { head :ok }
end
end
end
助けはありますか?
多くのアプリケーションがこれにしばらく取り組んでいましたが、それを理解していません!