Je suis relativement novice dans le domaine des rails et je suis en train de me battre pour essayer d'obtenir une application Rails sur mon serveur. Localement sur mon Mac, tout fonctionne correctement, cependant quand je l'exécute sur le serveur Ubuntu, j'obtiens une erreur NameError (uninitialized constant Api::V1::TestController::Headless)
. J'ai mis à jour bundler et les gemmes pertinentes comme cela a été suggéré dans d'autres messages. Je suis certain que Headless est dans mon fichier gem, est à jour, et est installé correctement. J'utilise Headless avec Watir Webdriver. Toute suggestion sur ce qui pourrait causer cette erreur serait grandement appréciée.Constante non initialisée dans Rails from Gem
Ruby Version: 2.2.3
Le contrôleur en question:
class Api::V1::TestController < ApplicationController
respond_to :json
def index
respond_with "test controller"
end
def create
event_submit(params[:json_event])
respond_to do |format|
if (@log.present?)
format.json { render text: "Log: " + @log }
else
format.json { render text: "Error, no log" }
end
end
end
def nul_check(param)
param ||= "none"
return param
end
def event_submit(params)
@log = ""
#initialize the log
@log = ""
#set the browser that we will use to chrome for testing
#use headless
headless = Headless.new
headless.start
browser = Watir::browser.start 'www.google.com'
@log += browser.title
end
end
Le Gemfile:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.4'
# Use postgresql as the database for Active Record
gem 'pg'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc
#Api gems
gem 'active_model_serializers'
gem 'deathbycaptcha'
gem 'rspec'
gem 'responders', '~> 2.0'
#Driver gems
gem 'watir-extensions-element-screenshot'
gem 'selenium-webdriver'
gem 'chromedriver-helper'
gem 'headless'
gem 'nokogiri'
gem 'watir-webdriver'
group :development, :test do
gem 'sqlite3'
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
end
group :development do
# Access an IRB console on exception pages or by using <%= console %> in views
gem 'web-console', '~> 2.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
end
gem 'unicorn'
Si au lieu de 'Headless' vous mettez' :: Headless' (notez le double deux-points), ça marche? – AmitA
Est-ce que mettre 'require' headless'' en haut du contrôleur aide? –
en utilisant :: Headless n'a aucun effet perceptible. J'ai la même erreur. L'ajout de 'require 'sans tête au sommet du contrôleur provoque un timeout de la passerelle. Cela n'ajoute rien au journal des erreurs, et cela n'a aucun effet quand je le fais au niveau local. Je coupe avec Unicorn/Nginx – Paige