2011-12-13 2 views
2

я должен запустить этот скрипт: /scripts/saveData.rbКак использовать Rails'Active Record в отдельном script.rb?

И в этом, мне нужно использовать ActiveRecord моего приложения Rails. Я пытался вызвать Class, но я получаю ошибку "uninitialized constant (NameError)".

Как я могу получить ссылку на классы Rails из моего сценария saveData.rb?

Rails 3.1

ОБНОВЛЕНО: как я могу вызвать метод модели? Моя модель: «Программа» (также активная запись). Я пытался с «Program.method», но он не работает, почему?

ответ

7

Какую версию рельсов вы используете?

Вы можете запустить свой код в Rails бегуна, как это, если вы используете Rails 3:

http://guides.rubyonrails.org/command_line.html#rails-runner

$ rails runner script/saveData.rb 

Если вы используете Rails 2, попробуйте это:

$ script/runner script/saveData.rb 
+0

Хорошо, и как я могу вызвать метод модели? Моя модель: «Программа» (также активная запись). Я пробовал с «Program.method», но он не работает, почему? – sparkle

+0

есть сообщения об ошибке? в основном, если ваш скрипт работает через бегуна rails, все ваши методы ваших моделей могут быть доступны. –

+0

Я всегда использовал рейк для этого, но бегун выглядит довольно удобно. – AJFaraday

1

Использование rails runner.

Запрет на то, что вы можете создать задачу рейка или просто загрузить файл с консоли рельсов.

+0

Я не понимаю. Мне нужно запустить «Active Record» INSIDE. .rb-файл – sparkle

+0

@ user1028100 Прежде всего, вы не запускаете ActiveRecord - это класс. Вы * используете * ActiveRecord. 'runner' - это один из способов получить доступ к вашей среде Rails из скрипта - вы прочитали ссылку? ИМО - задача рейка будет приятнее, но предоставленные варианты являются обычным выбором. –

+0

как я могу вызвать метод модели? Моя модель: «Программа» (также активная запись). Я пытался с «Program.method», но он не работает, почему? – sparkle

1

Вы можете попробовать require окружение Rails с этим в начале вашего скрипта:

require File.expand_path(File.join(File.dirname(__FILE__), 'config', 'environment')) 

Тем не менее, вы должны действительно рассмотреть возможность использования грабли.

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