HomeOrdersController #new中的NameError

时间:2014-09-07 13:28:48

标签: ruby-on-rails controller

我是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

2 个答案:

答案 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

这可以让您加载所需的模型