Pertanyaan tidak dapat memuat railtie setelah meng-upgrade ke rel 4 per ruby.railstutorial.org


OS adalah Ubuntu 12.04, 64 bit.

Baru di rel. Relatif baru untuk Ruby. Mengikuti tutorial ruby.railstutorial.org, bab 3.

Tutorial telah diperbarui untuk menggunakan ruby ​​2.0.0 dan Rails 4.0.0.rc1. Sebelumnya gemfile itu menentukan Rails 3.2.13 dan tidak menentukan versi Ruby. Setelah pindah ke Gemfile terbaru di tutorial, ruby ​​2.0.0 dan Rails 4.0.0.rc1, saya mendapatkan kesalahan berikut ketika menjalankan perintah rel. Contoh di sini adalah server rel

    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>'

Saya mendapatkan beberapa ide dari Rails: Tidak dapat menemukan saluran, diuraikan di bawah, tetapi belum menemukan perbaikan.

Berikut detailnya.

Kemarin (di browser saya), Gemfile untuk Bab 3 adalah sebagai berikut. Semuanya bekerja dengan baik.

$ 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

Pagi ini Gemfiles di tutorial menggunakan ruby ​​2.0.0 dan rel 4.0.0.rc1. Saya ingin agar pengaturan ini berfungsi, jadi saya tidak memiliki konflik dengan tutorial yang diperbarui. Permata Baru adalah sebagai berikut.

$ 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

Pertama saya mengubah versi ruby ​​di Gemfile ke ruby ​​'1.9.2' karena itulah yang saya jalankan, dan berpikir saya memiliki kesalahan dengan pembaruan bundel. Saya tidak mencatat.

Kemudian ubah versi ruby ​​kembali ke '2.0.0' di Gemfile dan:

$ rvm install 2.0.0
$ rvm use 2.0.0 --default
$ bundle update
$ bundle install

Sekarang saya mendapatkan tidak dapat memuat railtie kesalahan dengan perintah rel.

Dari Rails: Tidak dapat menemukan saluran, Saya mencoba yang berikut ini

$ 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

masih mendapatkan kesalahan

$ 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)

masih mendapatkan kesalahan

Kembali melalui pengaturan asli dari tutorial di bab satu (sekarang diperbarui untuk ruby ​​2, rel 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

masih mendapatkan kesalahan

ug !!!

Ada ide?


43
2018-05-28 00:27


asal


Jawaban:


ActiveResource adalah API yang ditambahkan di Rails 2.x untuk mendukung XML (dan kemudian JSON) API sehingga situs Rails dapat "berbicara" satu sama lain. Ini adalah topik yang sangat panas ketika ide API RESTful berhasil masuk ke dalam kerangka kerja. Seiring waktu itu menjadi lebih baru dan jarang dipertahankan sehingga ditarik dari inti di Rails 4.x.

Anda memiliki dua opsi di Rails 4.x. Jika Anda tidak berniat untuk menggunakan ActiveResource (saya berasumsi ini adalah kasus jika Anda baru untuk Rails dan mengerjakan tutorial) maka Anda dapat dengan mudah menghapus atau mengomentari railtie yang menariknya ke dalam framework. Buka 'config / application.rb' dan komentari baris ketujuh.

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

Jika Anda INGIN menggunakan ActiveResource, maka cukup tambahkan ke Gemfile untuk proyek. Sebelumnya itu dimasukkan oleh permata rel sebagai ketergantungan; sekarang Anda harus menambahkannya secara eksplisit jika Anda ingin menggunakannya.


67
2018-06-24 13:25



'activeresource' tersedia sebagai permata terpisah dari Rails 4


3
2018-06-24 11:32



Saya memiliki kesalahan yang sama. apa yang saya buat adalah: di Gemfile saya mengubah versi rel: gem 'rails', '4.2.0' Kemudian pada baris perintah dijalankan perintah ini: bundle install. Untuk melihat generator apa yang tersedia untuk kami ketik rails g atau rails generate di CLI.


0
2017-08-17 04:12