我是ruby on rails编程的初学者,我遇到了这个问题:
NameError in HomeOrdersController#new
uninitialized constant HomeOrdersController::HomeOrder
Extracted source (around line #7):
5
6
7
8
9
10
def new
@home_order = HomeOrder.new
end
def edit
答案 0 :(得分:0)
你有一个名为HomeOrder的模型吗?
尝试:
rails g model HomeOrder
答案 1 :(得分:0)
由于你是初学者,让我为你解释一下这个问题!
<强>模型强>
您遇到的错误是您尝试调用Rails无法找到的未定义常量(Model
)。由于Rails是基于Ruby构建的,因此它需要预先加载Model
,并且能够从控制器中调用
你基本上需要通过创建模型来解决错误。相应的数据库有两种方法可以做到这一点 - 手册和手册自动:
-
<强>手册强>
#app/models/home_order.rb
class HomeOrder < ActiveRecord::Base
end
$ rails g migration CreateHomeOrders
#db/migrate/create_home_orders.rb
class CreateHomeOrders < ActiveRecord::Migration
def change
create_table(:home_orders) do |t|
t.column :name, :string, limit: 60
# Other fields here
end
end
end
$ rails db:migrate
-
<强>自动强>
您将能够使用Rails模型生成器自动创建模型:
$ rails g model HomeOrder
这将创建模型文件(存储在app/models/home_order.rb
中),并为您提供一个迁移,然后您可以按上述方式填充
然后,您可以运行以下命令来推送迁移:
$ rake db:migrate
这可以让您加载所需的模型