Orderモデルがあります。
顧客は、すべてOrdersコントローラーによってサポートされている、独自の注文を作成および表示できる、消費者に優しいビューをいくつか取得します。
管理者は、購入コントローラーに支えられて、注文を作成、編集、表示、削除、および管理するためのすべてのビューを取得します。
私の知る限り、PurchasesコントローラーはOrderモデルとのみ通信する必要がありますが、次のエラーメッセージにより、存在しないPurchaseモデルを探していると思われます。
ActiveRecord::StatementInvalid in PurchasesController#new
NameError in PurchasesController#new
uninitialized constant Purchase
Rails.root: /Users/steven/Dropbox/testivate
それはエラーの意味ですか?もしそうなら、PurchasesコントローラーがPurchaseモデルを見つけようとするのを止めるにはどうすればよいですか?
私のコード...
app / controllers / purchases_controller.rb:
class PurchasesController < ApplicationController
def new
@purchase = Order.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @purchase }
end
end
def create
@purchase = Order.new(params[:purchase])
respond_to do |format|
if @purchase.save
format.html { redirect_to purchase_path(@purchase), notice: 'Purchase was successfully created.' }
format.json { render json: @purchase, status: :created, location: @purchase }
else
format.html { render action: "new" }
format.json { render json: @purchase.errors, status: :unprocessable_entity }
end
end
end
end
/config/routes.rb:
Testivate::Application.routes.draw do
resources :orders
resources :purchases
end
/app/views/purchases/new.html.haml:
.textbox
%p#notice= notice
%h1 New Purchase
= render 'form'
= link_to 'List Purchases', purchases_path
/app/views/purchases/_form.html.haml:
= simple_form_for @purchase do |f|
= f.error_notification
= f.input :name
= f.button :submit
更新:「transaction」はRailsの予約語であることに気付いたので、これを変更しました。しかし、他に修正する必要があるものはありますか?
*更新2: #newビューと_formを完全にコメントアウトしても、エラーが発生するので、問題はコントローラーやルート、またはsimple_formの使用以外の場所にあると思います。*