2013-05-20 3 views
0

У меня есть следующая модель в моей сборке Rails 3.2.13. Я пытаюсь использовать его для вставки данных в мою базу данных.<main> ': неинициализированная константа ActiveRecord (NameError)

class Financials < ActiveRecord::Base 
    #attr_accessible :description, :stock 
    attr_accessible :symbol, :cur_price 
    sym = Financials.new(:symbol => test, :cur_price => 10) 
    sym.save 

    end 

, но когда я пытаюсь запустить код, я получаю следующее сообщение об ошибке:

financials.rb: 1: в ` ': неинициализированная константа ActiveRecord (NameError)

я проверил через SO и найдены другие, имевшие подобные ошибки, и они предложили мне добавить записи в environment.rb ruby on rails pluralization help?

Я добавил следующее в файл environment.rb:

Inflector.inflections do |inflect| 
     inflect.irregular 'financialss', 'financials' 
    end 

но это действительно разрешило мою проблему. Заранее спасибо

ответ

2

Вы не создаете новые объекты внутри определения модели. Вы должны делать это в действии контроллера create.

Учитывая модель:

class Financial < ActiveRecord::Base 
    attr_accessible :symbol, :cur_price 

    # validations, methods, scope, etc. 
end 

Вы создаете новый объект Financial в контроллере и перенаправлять на соответствующий путь:

class FinancialsController < ApplicationController 
    def create 
    @financial = Financial.new(params[:financial]) 
    if @financial.save 
     redirect_to @financial 
    else 
     render :new 
    end 
    end 

    def new 
    @financial = Financial.new 
    end 

    def show 
    @financial = Financial.find(params[:id]) 
    end 
end 
+0

Отлично, я добавил свои рекомендации на мой контроллер, поэтому там, где бы я добавьте sym = Financials.new (: symbol => test,: cur_price => 10) инструкции sym.save? – rahrahruby

+0

У вас нет. Вот что «@financial = Financial.new (params [: financial]) заменено. Вы можете принимать входные данные из формы в представлении. http://guides.rubyonrails.org/form_helpers.html – veidt

Смежные вопросы