( 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”是文件中我的类的名称)。任何人都可以帮助我为什么这不起作用?我的想法在这里错了吗?感谢。
答案 0 :(得分:0)
我的第一个错误是我的文件名大写了#34; Site.rb&#34;,我在发布之前已经修好了。但在我修好之后,我意外地开始使用&#34; irb&#34;而不是&#34; rails c&#34;。 DOH!对不起该帖子。