ruby-on-rails - tutorial - ruby on rails website
no se puede cargar railtie después de la actualización a los rieles 4 por ruby.railstutorial.org (3)
''activeresource'' está disponible como una gema separada de Rails 4
OS es Ubuntu 12.04, 64 bit.
Nuevo en rieles. Relativamente nuevo para Ruby. Siguiendo el tutorial de ruby.railstutorial.org, capítulo 3.
El tutorial se ha actualizado para usar ruby 2.0.0 y Rails 4.0.0.rc1. Anteriormente, el archivo gem estaba especificando Rails 3.2.13 y no especificaba la versión de Ruby. Después de pasar al último Gemfile en el tutorial, ruby 2.0.0 y Rails 4.0.0.rc1, recibo el siguiente error al ejecutar comandos de rieles. Ejemplo aquí es servidor de rieles
user@machine:~/bin/railslearn/sample_app$ rails server
/home/paul/bin/railslearn/sample_app/config/application.rb:7:in `require'': cannot load such file -- active_resource/railtie (LoadError)
from /home/paul/bin/railslearn/sample_app/config/application.rb:7:in `<top (required)>''
from /home/paul/.rvm/gems/ruby-2.0.0-p195@railstutorial_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:78:in `require''
from /home/paul/.rvm/gems/ruby-2.0.0-p195@railstutorial_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:78:in `block in <top (required)>''
from /home/paul/.rvm/gems/ruby-2.0.0-p195@railstutorial_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:75:in `tap''
from /home/paul/.rvm/gems/ruby-2.0.0-p195@railstutorial_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:75:in `<top (required)>''
from script/rails:6:in `require''
from script/rails:6:in `<main>''
Obtuve algunas ideas de Rails: no se pudieron encontrar las vulnerabilidades , que se detallan a continuación, pero que aún no han encontrado una solución.
Aquí están los detalles.
Ayer (en mi navegador) el Gemfile para el Capítulo 3 fue el siguiente. Todo funcionó bien
$ cat Gemfile
source ''https://rubygems.org''
gem ''rails'', ''3.2.13''
gem ''bootstrap-sass'', ''2.1''
gem ''bcrypt-ruby'', ''3.0.1''
gem ''faker'', ''1.0.1''
gem ''will_paginate'', ''3.0.3''
gem ''bootstrap-will_paginate'', ''0.0.6''
gem ''jquery-rails'', ''2.0.2''
group :development, :test do
gem ''sqlite3'', ''1.3.5''
gem ''rspec-rails'', ''2.11.0''
# gem ''guard-rspec'', ''1.2.1''
# gem ''guard-spork'', ''1.2.0''
# gem ''childprocess'', ''0.3.6''
# gem ''spork'', ''0.9.2''
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem ''sass-rails'', ''3.2.5''
gem ''coffee-rails'', ''3.2.2''
gem ''uglifier'', ''1.2.3''
end
group :test do
gem ''capybara'', ''1.1.2''
gem ''factory_girl_rails'', ''4.1.0''
gem ''cucumber-rails'', ''1.2.1'', :require => false
gem ''database_cleaner'', ''0.7.0''
# gem ''launchy'', ''2.1.0''
# gem ''rb-fsevent'', ''0.9.1'', :require => false
# gem ''growl'', ''1.0.3''
end
group :production do
gem ''pg'', ''0.12.2''
end
Esta mañana los Gemfiles en el tutorial están usando ruby 2.0.0 y rails 4.0.0.rc1. Me gustaría que esta configuración funcione, por lo que no tengo conflictos con el tutorial actualizado. El nuevo Gemfile es el siguiente.
$ cat Gemfile
source ''https://rubygems.org''
ruby ''2.0.0''
gem ''rails'', ''4.0.0.rc1''
group :development, :test do
gem ''sqlite3'', ''1.3.7''
gem ''rspec-rails'', ''2.13.1''
end
group :test do
gem ''selenium-webdriver'', ''2.0.0''
gem ''capybara'', ''2.1.0''
end
gem ''sass-rails'', ''4.0.0.rc1''
gem ''uglifier'', ''2.1.1''
gem ''coffee-rails'', ''4.0.0''
gem ''jquery-rails'', ''2.2.1''
gem ''turbolinks'', ''1.1.1''
gem ''jbuilder'', ''1.0.2''
group :doc do
gem ''sdoc'', ''0.3.20'', require: false
end
group :production do
gem ''pg'', ''0.15.1''
end
Primero cambié la versión ruby en el Gemfile para ruby ''1.9.2'' porque eso es lo que estaba ejecutando, y creo que tuve un error con la actualización del paquete. No tomé notas.
Luego, cambié la versión de ruby a ''2.0.0'' en el Gemfile y:
$ rvm install 2.0.0
$ rvm use 2.0.0 --default
$ bundle update
$ bundle install
Ahora estoy obteniendo el error " no se puede cargar la razón" con los comandos de los rieles.
De los rieles: no pude encontrar las razones , intenté lo siguiente
$ gem uninstall railties
Select gem to uninstall:
1. railties-4.0.0.rc1
2. railties-3.2.13
3. All versions
> 2
You have requested to uninstall the gem:
railties-3.2.13
rails-3.2.13 depends on railties (= 3.2.13)
If you remove this gem, these dependencies will not be met.
Y # uninstall railties-3.2.13
sigue recibiendo el error
$ gem uninstall rails # to uninstall rails-3.2.13
$ gem uninstall railties # to also uninstall railties-4.0.0.rc1
$ rvm reinstall 2.0.0
$ rvm 2.0.0 --default
$ bundle update # using the Gemfile with ruby 2, rails 4
$ bundle install
$ gem list | grep rail
coffee-rails (4.0.0)
jquery-rails (2.2.1)
rails (4.0.0.rc1)
railties (4.0.0.rc1)
rspec-rails (2.13.1)
sass-rails (4.0.0.rc1)
sprockets-rails (2.0.0.rc4)
sigue recibiendo el error
Volviendo a la configuración original del tutorial en el capítulo uno (ahora actualizado para ruby 2, rails 4.)
$ rvm use 2.0.0@railstutorial_rails_4_0 --create --default
$ gem update --system 2.0.0
$ gem install rails --version 4.0.0.rc1 --no-ri --no-rdoc
$ bundle update # using Gemfile with ruby 2, rails 4
$ bundle install
sigue recibiendo el error
ug !!!
¿Algunas ideas?
ActiveResource era una API agregada en Rails 2.x para admitir una API XML (y más tarde JSON) para que los sitios de Rails pudieran "hablar" entre sí. Fue un tema candente cuando la idea de API RESTful se abrió paso en el marco. Con el tiempo, se convirtió en una novedad y se mantuvo con poca frecuencia por lo que se extrajo del núcleo en Rails 4.x.
Tienes dos opciones en Rails 4.x. Si no tenía la intención de usar ActiveResource (supongo que este es el caso si es nuevo en Rails y está trabajando en un tutorial), entonces simplemente puede eliminar o comentar la razón que está atrayendo al marco. Abra ''config / application.rb'' y comente la séptima línea.
require File.expand_path(''../boot'', __FILE__)
# Pick the frameworks you want:
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
# require "active_resource/railtie" <--- comment out this line
Si DESEA usar ActiveResource, simplemente agréguelo al Gemfile para el proyecto. Anteriormente fue incluida por la gema rails como una dependencia; ahora tendrá que agregarlo explícitamente si desea usarlo.
Tuve el mismo error. lo que hice fue: en Gemfile cambié la versión de los rieles: gem ''rails'', ''4.2.0''
Luego, en la línea de comandos ejecuté este comando: bundle install
. Para ver qué generadores tenemos disponibles, escriba los rails g
o los rails generate
en CLI.