У меня есть модель Ордена.
Клиенты получают несколько удобных для потребителя представлений, которые позволяют им создавать и просматривать свои собственные заказы, и все они поддерживаются контроллером заказов.
Администраторы получают полный набор представлений для создания, редактирования, просмотра, удаления и управления заказами при поддержке контроллера покупок.
Насколько я могу судить, контроллер 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
Обновление: я только что понял, что "транзакция" является зарезервированным словом в Rails, поэтому я изменил его. Но есть ли что-то еще, что мне нужно исправить?
*Обновление 2: когда я полностью комментирую #new представление и _form, я все еще получаю сообщение об ошибке, поэтому я думаю, что проблема в моем контроллере или маршрутах или где-то еще, кроме использования мной simple_form .*
load_and_authorize_resource
)? - person Sergio Tulentsev   schedule 03.12.2012