0

모델 contact.rb 추가하려고 할 때 :초기화되지 않은 상수 연락 (나가서 설명하자면 NameError) 기록

class Contact < ActiveRecord::Base 
    attr_accessible :name, :phone 
end 

Test.rb :

Contact.create({:name => "Josh", :phone => "123-456789"}) 

을 내가 터미널에서 test.rb를 실행하면 내가받을거야 오류 :

lib/tasks/test.rb:1:in `': uninitialized constant Contact (NameError)

database.yml을 :

development: 
    adapter: sqlite3 
    database: db/development.sqlite3 
    pool: 5 
    timeout: 5000 

나는 이것이 사소한 질문이라고 생각합니다. 나는이 공개 토론을 수색했다, 그러나 이것에 어떤 단서도주지 않았다.

정보를 명확하게 입력해야하는지 알려주세요.

+0

테스트를 어떻게 실행합니까? 터미널에서 – toro2k

+0

나는 그것을 예정된 일로 할 계획이다. – Askar

답변

1

레일 환경이로드되지 않기 때문에 ruby lib/tasks/test.rb을 단순히 실행할 수 없습니다. 이 문제를 해결하려면 레이크 작업을 사용해야합니다.

먼저 파일 이름을 lib/tasks/test.rb에서 lib/tasks/test.rake으로 바꿔야합니다.

그런 다음 test.rake에 추가해야합니다.

namespace :contact do # This is not require. It can work without having to nest your task within a namespace. 
    desc 'Add contact' 
    task 'add' => [:environment] do #Here, we specify we want to load the environment 
    Contact.create({:name => "Josh", :phone => "123-456789"}) 
    end 
end 

그런 다음 실행 가능한 모든 작업을 나열하는 rake -T을 실행하십시오.

rake contact:add으로 작업을 시작할 수 있습니다.

특정 시간에 작업을 실행하도록 예약하려면 Whenever 보석을 살펴볼 수 있습니다.

희망이 있습니다.

+0

감사합니다. 나는 언제나 보석을 알고 있습니다. 위의 조언에 따라 실행하면 오류가 발생했습니다. 레이크가 중단되었습니다. 초기화되지 않은 상수 Inflector /home/askar/Dropbox/rails_studio/sqltest/config/environment.rb:7:in' ' /home/askar/.rvm/gems/ruby-1.9.3- p429/gems/railties-3.2.13/lib/rails/application.rb : 103 :'require '에 /home/askar/.rvm/gems/ruby-1.9.3-p429/gems/railties-3.2.13 /lib/rails/application.rb:103:in'require_environment! ' ... 오래 전부터 모든 오류 메시지를 넣을 수 없습니다. – Askar

+0

config/environment.rb에는 무엇이 있습니까? 모든 커스텀 문장? – Arkan

+0

아, 죄송합니다.이 게시글을 작성하기 전에 맞춤 문구가있었습니다. 한번 삭제하면 효과가있었습니다. 고마워요! :) – Askar

관련 문제