Frage

Ich schreibe eine „Aktion“ für CloudCrowd , den Zugriff auf die Rails-Umgebung benötigt (für einige Active Material), aber der Standard mittels der Umwelt geladen wird, was zu Fehlern fischigen.

Ich habe versucht, jede der folgenden an der Spitze meiner Aktion .rb Datei:

require(File.join(File.dirname(__FILE__), '../..', 'boot'))

und

require File.expand_path(File.dirname(__FILE__) + "/../../environment")

Wenn ich versuche, um den Knoten zu starten bekomme ich diesen Fehler:

»crowd node
Starting CloudCrowd Node on port 9063...
Missing the Rails 2.3.2 gem. Please `gem install -v=2.3.2 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

Und ich natürlich tun haben die Perle installiert:

»gem list | grep -i rails
rails (2.3.4, 2.3.2, 2.2.2, 1.2.6)
War es hilfreich?

Lösung 2

Jemand aus @documentcloud sah meine Bitte und half mir durch sie zu arbeiten. Hatte das Action Script mit dieser Präfix:

RAILS_GEM_VERSION = nil
RAILS_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '../../..'))
RAILS_ENV = ENV['RAILS_ENV'] || 'development'

if CloudCrowd.node?
  require 'rubygems'
  require 'activerecord'
  ActiveRecord::Base.logger = Logger.new(STDOUT)
  require File.expand_path(File.join(File.dirname(__FILE__), '../..', 'environment'))
end

Andere Tipps

Nice! Ich habe tatsächlich einige Probleme mit Ihrem RAILS_ROOT Weg und ersetzt ‚../../ ..‘ habe mit ‚../ ..‘. da haben Sie auch schon die RAILS_ROOT Konstante erklärt, könnten Sie ein paar Dinge in der Umwelt Anforderung abhacken. Hier ist meine Version:

RAILS_GEM_VERSION = nil
RAILS_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '../..'))
RAILS_ENV = ENV['RAILS_ENV'] = ENV['RACK_ENV']

if CloudCrowd.node?
  require 'rubygems'
  require 'activerecord'
  ActiveRecord::Base.logger = Logger.new(STDOUT)
  require "#{RAILS_ROOT}/config/environment"
  # and if you need to import 
  # anything from lib just go ahead and
  require 'my_custom_lib/name_of_file'
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top