使用非ActiveRecord模型,无法通过rails console

时间:2015-10-19 18:33:21

标签: ruby-on-rails ruby ruby-on-rails-4 model-view-controller activerecord

Rails 4.2.4 )您好,初学者在这里。我正在开发一个不需要DB或activeRecord的项目。因此,在制作我的Rails项目时,我附加了-O(以禁用Active Record和数据库)(rails new MyApp -O)

我读到要做一个没有数据库支持的模型,你可以在

中创建一个文件

应用程序/模型/ site.rb。

无需:

rails生成模型站点

所以我添加了我的模型,看起来像这样:

class Site

attr_reader   :name
attr_reader   :out_average
attr_reader   :in_average
attr_reader   :change

def initialize(name, in_average, out_average)
    @name        = name
    @out_average = out_average
    @in_average  = in_average
    @change      = find_increase
end

def find_increase()
    if @in_average && @out_average != 0
        @change = ((@in_average - @out_average)/@out_average)*100
    else
        @change = 0
    end

    return @change

end
end

所以,然后我启动了控制台“rails c”,当我尝试调用一个新的Site对象时,我收到一个错误:

IRB(主):001:0> Site.new

NameError: uninitialized constant Site
from (irb):1
from /home/ms-87/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands/console.rb:110:in `start'
from /home/ms-87/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands/console.rb:9:in `start'
from /home/ms-87/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:68:in `console'
from /home/ms-87/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /home/ms-87/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands.rb:17:in `<top (required)>'
from /home/ms-87/Documents/projects/rails_projects/site_seasonality/bin/rails:8:in `<top (required)>'
from /home/ms-87/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/ms-87/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from -e:1:in `<main>'

我确保从应用程序的根目录启动了控制台。我还确保使用正确的命名约定(site.rb是app / model /中的文件名,“Site”是文件中我的类的名称)。任何人都可以帮助我为什么这不起作用?我的想法在这里错了吗?感谢。

1 个答案:

答案 0 :(得分:0)

我的第一个错误是我的文件名大写了#34; Site.rb&#34;,我在发布之前已经修好了。但在我修好之后,我意外地开始使用&#34; irb&#34;而不是&#34; rails c&#34;。 DOH!对不起该帖子。