Как я выполняю задачи Ruby, которые используют мои модели Rails?

Проблема вызвана тем, что ваша переменная selectedState помещается перед обновлением выбранного атрибута аккордеона.

Вы можете попробовать разместить код, где вы обновляете выбранный атрибут для аккордеона выше selectedState

13
задан 6 December 2008 в 00:25
поделиться

8 ответов

Я соглашаюсь с ответом выше, но необходимо включать =>: среда в Вашей задаче или это не загрузит среду направляющих.

например,

namespace :send do
  namespace :trial do
    namespace :expiry do
      desc "Sends out emails to people who's accounts are about to expire"
      task :warnings => :environment do
        User.trial_about_to_expire.has_not_been_notified_of_trial_expiry.each do |user|
          UserMailer.deliver_trial_expiring_warning(user)
          user.notified_of_trial_expiry = true
          user.save
        end
      end
    end
  end
end
7
ответ дан 1 December 2019 в 19:51
поделиться

Я описал сообщение об этом некоторое время назад.

http://www.rawblock.com/2007/06/14/ruby-oracle-mac-os-x-pain-jruby-and-activerecord-jdbc-to-the-rescue/

2
ответ дан 1 December 2019 в 19:51
поделиться

Можно загрузить всю среду направляющих в любом рубиновом сценарии путем простого требования environment.rb:

require "#{ENV['RAILS_ROOT']}/config/environment" 

Это предполагает, что переменная среды RAILS_ROOT установлена, см. мой комментарий для других способов сделать это.

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

Для начинания процессов, это кажется, что крон сделает то, что Вы хотите, и я также добавил бы задачу к Вашему capistrano рецепту, который добавит Ваш сценарий к crontab, чтобы периодически получить данные из внешнего источника и обновить Ваш DB. Это может легко быть сделано с cronedit драгоценным камнем.

Подход крона действительно имеет некоторые недостатки, главным образом наверху и управление, поскольку другие более сложные опции видят HowToRunBackgroundJobsInRails от направляющих Wiki.

18
ответ дан 1 December 2019 в 19:51
поделиться

Я предложил бы создать пользовательские задачи граблей (lib/task/foo.rake). Это предоставляет Вам легкий доступ к большей части функциональности Вашего приложения для направляющих.

namespace :foo do
  desc 'do something cool'
  def something_cool
     test = MyModel.new
     test.name = 'test'
     test.save
  end
end

Затем:

$ rake -T foo
rake foo:something_cool       # do something cool

Можно даже выполнить задачи через cronjob.

3
ответ дан 1 December 2019 в 19:51
поделиться

Можно открыть соединение в сценариях как таковых:

ActiveRecord::Base.establish_connection(
    :adapter  => "mysql",
    :username => "root",
    :host     => "localhost",
    :password => "******",
    :database => "******" 
)

Я уверен, что существует более изящный способ сделать это, так, чтобы это захватило информацию от Вашего database.yml.

1
ответ дан 1 December 2019 в 19:51
поделиться

Существует немного шагов к этому, и больше деталей должно было действительно ответить хорошо.

Вы говорите, что Ваш сайт получает данные из других источников? Как часто? Если это полурегулярно, Вы определенно хотите изучить фоновую обработку / обмен сообщениями. Если это часто, Вы действительно не хотите загружать свою среду направляющих каждый раз Ваши выполнения сценария, так как Вы будете платить слишком высокому налогу на запуск каждый раз.

Существует множество опций там, Вы захотите исследовать. При чтении о каждом из них особенно обзоры от людей, которые отправляют о том, почему они сделали выбор, который они сделали, дадут Вам хорошее чувство для того, какие вопросы необходимо задать себя перед совершением выбора. Как большой задание загружает данные? и т.д...

Первое, что пришло на ум это некоторые вещи, которые можно хотеть изучить

Script/Runner & Cron Background/RB Starling Workling MemcacheQ Beanstalk Background Job (Bj) delayed_job (ди-джей) Генератор Демона

1
ответ дан 1 December 2019 в 19:51
поделиться

Хорошие Joyent описывают использования граблей для выполнения задач направляющих от задания крона - http://wiki.joyent.com/accelerators:kb:rails:cron

0
ответ дан 1 December 2019 в 19:51
поделиться

Проверьте мой ответ в "Задании крона для направляющих: лучшие практики?".

Это содержит два примера для использования крона для выполнения задач Граблей и методов класса (через script/runner). В обоих случаях, направляющие загружается, и можно использовать модели.

1
ответ дан 1 December 2019 в 19:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: