Beim Starten einer neuen App wird beim Erstellen einer Controller-Startseite und beim Versuch, zum lokalen Host zu wechseln: 3000 / pages / home, die folgende Fehlermeldung angezeigt:
Showing c:/Users/Doesha/desktop/pinplug/app/views/layouts/application.html.erb where line #6 raised:
TypeError: Object doesn't support this property or method
(in c:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee)
application.html.erb Datei:
<!DOCTYPE html>
<html>
<head>
<title>Pinplug</title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
Datei application_controller.rb:
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
end
page_controller.rb Datei:
class PagesController < ApplicationController
def home
end
end
route.rb Datei:
Rails.application.routes.draw do
get 'pages/home'
# The priority is based upon order of creation: first created -> highest priority.
# See how all your routes lay out with "rake routes".
# You can have the root of your site routed with "root"
# root 'welcome#index'
# Example of regular route:
# get 'products/:id' => 'catalog#view'
# Example of named route that can be invoked with purchase_url(id: product.id)
# get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
# Example resource route (maps HTTP verbs to controller actions automatically):
# resources :products
# Example resource route with options:
# resources :products do
# member do
# get 'short'
# post 'toggle'
# end
#
# collection do
# get 'sold'
# end
# end
# Example resource route with sub-resources:
# resources :products do
# resources :comments, :sales
# resource :seller
# end
# Example resource route with more complex sub-resources:
# resources :products do
# resources :comments
# resources :sales do
# get 'recent', on: :collection
# end
# end
# Example resource route with concerns:
# concern :toggleable do
# post 'toggle'
# end
# resources :posts, concerns: :toggleable
# resources :photos, concerns: :toggleable
# Example resource route within a namespace:
# namespace :admin do
# # Directs /admin/products/* to Admin::ProductsController
# # (app/controllers/admin/products_controller.rb)
# resources :products
# end
end
gemfile:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.0'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# 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'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
gem 'execjs', '~> 2.2.2'
# 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
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
# Access an IRB console on exception pages or by using <%= console %> in views
gem 'web-console', '~> 2.0'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gemfile.lock Datei:
GEM
remote: https://rubygems.org/
specs:
actionmailer (4.2.0)
actionpack (= 4.2.0)
actionview (= 4.2.0)
activejob (= 4.2.0)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 1.0, >= 1.0.5)
actionpack (4.2.0)
actionview (= 4.2.0)
activesupport (= 4.2.0)
rack (~> 1.6.0)
rack-test (~> 0.6.2)
rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.1)
actionview (4.2.0)
activesupport (= 4.2.0)
builder (~> 3.1)
erubis (~> 2.7.0)
rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.1)
activejob (4.2.0)
activesupport (= 4.2.0)
globalid (>= 0.3.0)
activemodel (4.2.0)
activesupport (= 4.2.0)
builder (~> 3.1)
activerecord (4.2.0)
activemodel (= 4.2.0)
activesupport (= 4.2.0)
arel (~> 6.0)
activesupport (4.2.0)
i18n (~> 0.7)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
arel (6.0.0)
binding_of_caller (0.7.2)
debug_inspector (>= 0.0.1)
builder (3.2.2)
byebug (3.5.1)
columnize (~> 0.8)
debugger-linecache (~> 1.2)
slop (~> 3.6)
coffee-rails (4.1.0)
coffee-script (>= 2.2.0)
railties (>= 4.0.0, < 5.0)
coffee-script (2.3.0)
coffee-script-source
execjs
coffee-script-source (1.9.0)
columnize (0.9.0)
debug_inspector (0.0.2)
debugger-linecache (1.2.0)
erubis (2.7.0)
execjs (2.2.2)
globalid (0.3.2)
activesupport (>= 4.1.0)
hike (1.2.3)
i18n (0.7.0)
jbuilder (2.2.6)
activesupport (>= 3.0.0, < 5)
multi_json (~> 1.2)
jquery-rails (4.0.3)
rails-dom-testing (~> 1.0)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
json (1.8.2)
loofah (2.0.1)
nokogiri (>= 1.5.9)
mail (2.6.3)
mime-types (>= 1.16, < 3)
mime-types (2.4.3)
mini_portile (0.6.2)
minitest (5.5.1)
multi_json (1.10.1)
nokogiri (1.6.6.2-x86-mingw32)
mini_portile (~> 0.6.0)
rack (1.6.0)
rack-test (0.6.3)
rack (>= 1.0)
rails (4.2.0)
actionmailer (= 4.2.0)
actionpack (= 4.2.0)
actionview (= 4.2.0)
activejob (= 4.2.0)
activemodel (= 4.2.0)
activerecord (= 4.2.0)
activesupport (= 4.2.0)
bundler (>= 1.3.0, < 2.0)
railties (= 4.2.0)
sprockets-rails
rails-deprecated_sanitizer (1.0.3)
activesupport (>= 4.2.0.alpha)
rails-dom-testing (1.0.5)
activesupport (>= 4.2.0.beta, < 5.0)
nokogiri (~> 1.6.0)
rails-deprecated_sanitizer (>= 1.0.1)
rails-html-sanitizer (1.0.1)
loofah (~> 2.0)
railties (4.2.0)
actionpack (= 4.2.0)
activesupport (= 4.2.0)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rake (10.4.2)
rdoc (4.2.0)
json (~> 1.4)
sass (3.4.11)
sass-rails (5.0.1)
railties (>= 4.0.0, < 5.0)
sass (~> 3.1)
sprockets (>= 2.8, < 4.0)
sprockets-rails (>= 2.0, < 4.0)
tilt (~> 1.1)
sdoc (0.4.1)
json (~> 1.7, >= 1.7.7)
rdoc (~> 4.0)
slop (3.6.0)
sprockets (2.12.3)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sprockets-rails (2.2.4)
actionpack (>= 3.0)
activesupport (>= 3.0)
sprockets (>= 2.8, < 4.0)
sqlite3 (1.3.10-x86-mingw32)
thor (0.19.1)
thread_safe (0.3.4)
tilt (1.4.1)
turbolinks (2.5.3)
coffee-rails
tzinfo (1.2.2)
thread_safe (~> 0.1)
tzinfo-data (1.2015.1)
tzinfo (>= 1.0.0)
uglifier (2.7.0)
execjs (>= 0.3.0)
json (>= 1.8.0)
web-console (2.0.0)
activemodel (~> 4.0)
binding_of_caller (>= 0.7.2)
railties (~> 4.0)
sprockets-rails (>= 2.0, < 4.0)
PLATFORMS
x86-mingw32
DEPENDENCIES
byebug
coffee-rails (~> 4.1.0)
execjs (~> 2.2.2)
jbuilder (~> 2.0)
jquery-rails
rails (= 4.2.0)
sass-rails (~> 5.0)
sdoc (~> 0.4.0)
sqlite3
turbolinks
tzinfo-data
uglifier (>= 1.3.0)
web-console (~> 2.0)
application.rb Datei:
require File.expand_path('../boot', __FILE__)
require 'rails/all'
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)
module Pinplug
class Application < Rails::Application
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
# config.time_zone = 'Central Time (US & Canada)'
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
# config.i18n.default_locale = :de
# Do not swallow errors in after_commit/after_rollback callbacks.
config.active_record.raise_in_transactional_callbacks = true
end
end
Ich habe auch den Turbolink-Edelstein von 2.3.0 auf 2.2.2 herabgestuft, weil ich dachte, dass die neuere Version des Turbolink-Edelsteins Fehler in meiner App verursacht hat. Offensichtlich hat das bei mir nicht funktioniert.
Irgendwelche Vorschläge, was mit meiner App schief gehen könnte?
Antworten:
Ändern Sie in Ihren Zeilen /app/views/layouts/application.html.erb, Zeilen 5 und 6 , den ersten Parameter von
application
bisdefault
.Ich habe das gleiche Problem auch für meine Situation getroffen, ich weiß nicht warum, aber es passiert nur unter Windows. Der Parameter
application
funktioniert auf dem Webserver.quelle
coffee-script source
> =1.9.0
funktioniert unter Windows nicht richtig. Sie können dies tun:gem 'coffee-script-source', '1.8.0'
erzwingen1.8.0
und dann ausgebenbundle update coffee-script-source
Wenn Sie in Windows ausgeführt werden, funktioniert die Kaffee-Skript-Quelle 1.9.0 unter Windows nicht.
Ändern Sie es in eine frühere Version und fügen Sie diese Zeile zu Ihrer Gemfile hinzu:
gem 'coffee-script-source', '1.8.0'
Installieren Sie dann das Bundle neu und passen Sie die Abhängigkeiten für die neue Gem-Version an mit:
bundle update coffee-script-source
quelle
Ich habe dieses Problem schon eine Weile und nachdem ich alle Antworten in diesem Thread durchgesehen und festgestellt habe, dass sie alle nicht erfolgreich waren, habe ich beschlossen, meine Lösung in der Hoffnung hinzuzufügen, dass sie zukünftigen Rails-Benutzern hilft.
Ich habe alles in diesem Thread getan - das Ändern
application
auf, damitdefault
es fehlerfrei durchlaufen kann, aber sobald Sie tatsächlich versuchen, JavaScript zu verwenden, wird ein Fehler angezeigt, der besagt, dass Sie nicht finden könnendefault.js
. Ich habe NodeJS installiert und in meinen Ruby / bin-Ordner gelegt. Das hat nichts gebracht, also habe ich es entfernt.Sie können dieses Problem zwar vorübergehend mit der Lösung "Umschalten
application
mitdefault
" umgehen, aber es ist extrem kurzfristig. Diese Lösung funktioniert möglicherweise für Sie, wenn Sie nicht beabsichtigen, JavaScript über die Rails-Asset-Pipeline zu gestalten oder Ihrer App hinzuzufügen. Ich habe dies nicht selbst getestet, aber ich stelle mir vor, dass das Einfügen von JavaScript und Stylesheets in die Header-Datei application.html möglicherweise funktioniert. Aber dann verlierst du die Magie von Rails.Ich hatte dieses Problem auf Windows 8-, Windows 10- und Ubuntu-Plattformen.
Das einzige , was löst es, für mich, und immer noch die JavaScript und Stylesheets macht , ist zum ersten Wechsel
application
zuapplication.css
den Stylesheets (auch wenn Sie Sass / SCSS verwenden, weil es immer noch nach unten in CSS kompiliert) undapplication.js
für den Link JavaScript. Sobald dies erledigt ist, gehen Sie in Ihre/assets/javascripts/application.js
Datei und löschen Sie die//
vor//= require turbolinks
.Und jetzt sollte Ihre Anwendung gut funktionieren.
Dies ist wahrscheinlich ein tieferes Problem mit Turbolinks, aber dies ist eine schnelle Problemumgehung, die mich noch nicht enttäuscht hat.
quelle
in Windows Coffee-Script-Quelle> = 1.9.0 funktioniert nicht richtig. Fügen Sie einfach Gemfile hinzu
gem 'coffee-script-source', '1.8.0'
und Renn
bundle update coffee-script-source
quelle
Installieren Sie einfach NodeJS auf Ihrem lokalen Computer (stellen Sie sicher, dass der entsprechende Eintrag zum PATH hinzugefügt wurde) und fügen Sie ihn hinzu
gem 'execjs'
in die Gemfile .
quelle
Unter Windows 10, Version 1511, funktionierte das Hinzufügen des Gems 'Coffee-Script-Source', '1.8.0' zu meiner Gemfile und das anschließende Aktualisieren der Coffee-Script-Source aus dem Projektverzeichnis. NB: Die vorherige Version der Kaffee-Skript-Quelle, die ersetzt wurde, war 1.10.0
quelle
(Unter Windows 8)
quelle
Ich hatte auch dieses Problem. Ich ging in Sublime in meinen Projektordner. Klicken Sie dann auf die App-Ordner, zeigen Sie den Ordner und das Layout an, klicken Sie auf application.html.erb und ändern Sie die Zeilen 5 und 6 'application' in 'default'. Hat super funktioniert. Vielen Dank für die Veröffentlichung Ihres Problems und vielen Dank an diejenigen, die geantwortet haben!
Ich wollte nur hinzufügen, dass ich durch Sublime gegangen bin. Ich lerne gerade und habe nicht verstanden, wie ich auf die .erb-Datei zugreifen soll. Ich wollte nur anderen helfen.
quelle
Ich habe gerade das '
application
' in 'default
' in den Zeilen 5 und 6 geändert und beschlossen./app/views/layouts/application.html.erb
.VON:
<%= stylesheet_link_tag '**application**', media: 'all', 'data-turbolinks-track' => true %> <%= javascript_include_tag '**application**', 'data-turbolinks-track' => true %>
ZU:
<%= stylesheet_link_tag '**default**', media: 'all', 'data-turbolinks-track' => true %> <%= javascript_include_tag '**default**', 'data-turbolinks-track' => true %>
quelle
Endlich hat es funktioniert, was für ein Seufzer der Erleichterung. Auch wenn ich nicht genau weiß, warum es funktioniert hat. Versuchte alle folgenden. 1) Installierte node.js, fügte coffescript npm hinzu und startete neu. 2) Gem für exec.js hinzugefügt und runtime.rb so geändert, dass keine Standard-Windows-Skriptdatei verwendet werden kann. Informationen hierzu finden Sie unter diesem Link: [ https://github.com/sstephenson/execjs/issues/81[1] 3) Um sicher zu gehen, fügen Sie auch Rubyracer Gem Gem 'Therubyracer' hinzu, Plattformen :: Ruby
Zusammenfassend wurden zwei Skript-Engines hinzugefügt, nodejs und rubyracer, und execjs hinzugefügt, damit die beste Scripting-Engine ausgewählt wird, die Windows-Scrpting-Engine jedoch nicht ausgewählt werden kann.
Ich denke, nur die Installation von NodeJS allein könnte nach dem Hinzufügen von Execjs funktioniert haben. Ich habe jedoch nicht neu gestartet (nach der Installation von nodejs) und alle anderen Dinge ausprobiert.
quelle
Ich habe alle oben genannten Lösungen ausprobiert, und die einzige, die ordnungsgemäß funktioniert hat, bestand darin, node.js zu installieren, das Verzeichnis der Umgebungsvariablen 'path' in Windows hinzuzufügen (siehe Erweiterte Systemeinstellungen, Umgebungsvariablen, Pfad) und dann das neu zu starten Computer und Server. Ich denke, die späteren Versionen von Coffee-Script-Source müssen zusammen mit anderen Edelsteinen von node.js abhängig sein. Ich hatte den identischen Fehler ohne Kaffee-Skript-Quelle.
Das Ändern von "Anwendung" in "Standard" ist jedoch eine schreckliche Lösung, da nur das gesamte CSS-Design der Anwendung entfernt wird. Ich empfehle es überhaupt nicht.
quelle
Ich bin auf Schienen 5.1.6. Ich hatte das gleiche Problem. Wie oben empfohlen, habe ich das Juwel aus der Kaffee-Skript-Quelle herabgesetzt, das das Problem gelöst hat.
# Use CoffeeScript for .coffee assets and views gem 'coffee-rails', '~> 4.2' # <-- This existed already gem 'coffee-script-source', '1.8.0' # <-- Adding this line solved the problem
Hinweis: Ich habe die Datei application.html.rb nicht geändert
quelle
wir sollten nur Linie 6 von ändern
application
zudefault
in /app/views/layouts/application.html.erb. Wenn Sie Zeile 5 ändern, werden die Stylesheets nicht geladen.quelle
Sie müssen die Anweisungen auf der Schienenseite lesen. Sie benötigen ExecJS Gem und etwas JS-Laufzeit.
Praktischer: 1.- Installieren Sie einige Runtime JS, zum Beispiel node.js
2.- Holen Sie sich ExecJS gem-> gem install execjs
Erklärung:
Von der Schienenseite:
"Für das Kompilieren der Komprimierung von CoffeeScript- und JavaScript-Assets ist eine JavaScript-Laufzeit auf Ihrem System verfügbar. Wenn keine Laufzeit vorhanden ist, wird beim Kompilieren der Assets ein Ausführungsfehler angezeigt. In Mac OS X und Windows wird normalerweise eine JavaScript-Laufzeit installiert. Rails fügt die hinzu therubyracer gem zur generierten Gemfile in einer kommentierten Zeile für neue Apps und Sie können Kommentare abgeben, wenn Sie sie benötigen. therubyrhino ist die empfohlene Laufzeit für JRuby-Benutzer und wird standardmäßig zur Gemfile in Apps hinzugefügt, die unter JRuby generiert wurden. Sie können alle unterstützten untersuchen Laufzeiten bei ExecJS. "
Aus dem GitHub von ExecJS:
"Mit ExecJS können Sie JavaScript-Code von Ruby aus ausführen. Es wählt automatisch die beste verfügbare Laufzeit aus, um Ihr JavaScript-Programm auszuwerten, und gibt das Ergebnis dann als Ruby-Objekt an Sie zurück.
ExecJS unterstützt diese Laufzeiten:
therubyracer - Google V8 embedded within Ruby therubyrhino - Mozilla Rhino embedded within JRuby Duktape.rb - Duktape JavaScript interpreter Node.js Apple JavaScriptCore - Included with Mac OS X Microsoft Windows Script Host (JScript) Google V8 mini_racer - Google V8 embedded within Ruby"
ExecJS Readme GitHub
quelle
Sein Problem mit Turbolinks Edelstein, so dass es Fehler erzeugt
Ändern Sie dies in app \ views \ layouts \ application.html.erb
<%= stylesheet_link_tag 'application.css', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'application.js', 'data-turbolinks-track': 'reload' %>
von
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
und kommentieren Sie die Zeile Nr. 15 in app \ assets \ javascripts \ application.js aus
require turbolinks
und kopieren Sie es am Ende der Datei in app \ Assets \ Stylesheets \ application.css
Von hier aus werden Ihre CSS und JS ausgeführt
quelle
Auf Windwos 10
Installieren Sie einfach node.js und stellen Sie sicher, dass sich die ausführbare Datei des Knotens in der Pfadvariablen befindet.
quelle
(Unter Windows 10 - Rails 4.2.5) : Ich habe Folgendes gelöst:
1) Installieren Sie node.js
2) Installieren Sie das Coffe-Script-Source- Juwel
gem 'coffee-script-source', '1.8.0'
3) Fügen Sie diese Zeile in " config \ initializers \ assets.rb " hinzu.
Rails.application.config.assets.precompile + =% w (application.css)
quelle
Für Windows-Benutzer Sie können den Laufzeitpfad von execjs zum Knoten einrichten
config/boot.rb ENV['EXECJS_RUNTIME'] = 'Node'
quelle