Ошибка запуска сервера Rails: неопределенный метод 'configure'

Я новичок в рельсах и работаю над учебником Хартла. Все было хорошо, пока я не попытался сделать урок во второй раз и не создал другой проект, пытаясь использовать последнюю версию rails. Когда я пытаюсь загрузить rails server из папки приложения я получаю следующую ошибку.

$ rails s
=> Booting WEBrick
=> Rails 4.0.4 application starting in development on
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Exiting
/Users/sierra/Desktop/sample_app_2/config/environments/development.rb:1:in
  `<top (required)>': undefined method `configure' for
  #<SampleApp2::Application:0x00000101a74610> (NoMethodError)

Мой Gemfile прямо из учебника по Hartl:

source 'https://rubygems.org'
ruby '2.1.0'
#ruby-gemset=railstutorial_rails_4_0

gem 'rails', '4.0.4'

group :development, :test do
  gem 'sqlite3', '1.3.8'
  gem 'rspec-rails', '2.13.1'
end

group :test do
  gem 'selenium-webdriver', '2.35.1'
  gem 'capybara', '2.1.0'
end

gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
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 'rails_12factor', '0.0.2'
end

5 ответов

Решение

Я решил это, выполнив следующий шаг.

Шаг 1: перейдите в Project_Root_Directory/config/environment/development.rb

Изменить эту строку

Rails.application.configure do

к

Your_Rails_Application_Folder_name::Application.configure do

Например, имя моей папки проекта rails 'Spree_demo', поэтому Your_Rails_Application_Folder_name в следующей строке:

Your_Rails_Application_Folder_name::Application.configure do

будет заменен как

SpreeDemo::Application.configure do

Примечание. См. Подчеркивание в названии папки приложения, которое будет удалено.

Надеюсь, это работает для вас, ребята.

Сначала установите Ruby версию перед Rails new

У меня была та же проблема, и я попробовал дать ответ, и он не оказал никакого влияния. Я даже попытался изменить имя, чтобы избавиться от подчеркивания, и это не имело никакого влияния.

Проблема в том, что вы сделали это:

$ rails new app_name

Но ваша рубиновая версия была, вероятно, 2.1.1 или что-то еще. Ты хочешь сделать:

$ rvm 2.0.0

ДО того, как вы запустите новое приложение, а затем, когда вы установите 2.0.0 в своем Gemfile (как рекомендует Hartl), оно встает на свои места.

Я не знаю, ПОЧЕМУ это работает, и я надеюсь, что кто-то прояснит это, но я могу вам сказать, что это сработало лучше, чем ответ, который в настоящее время находится в лидерах.

Это случилось со мной тоже. Проблема заключалась в том, что я использовал одну версию Rails для создания проекта. Затем я изменил Gemfile, чтобы использовать другую версию Rails, и система использовала его для создания или запуска сервера. Проблема новичка! Последовательное использование одной и той же версии должно решить проблему.:-)

Я опубликовал (вероятно, слишком длинный) ответ на аналогичный вопрос: rails - NoMethodError: неопределенный метод `configure'для FirstApp. Эта тема фактически подтолкнула меня на пути к моему возможному решению, поэтому я подумал, что буду публиковать здесь также на всякий случай, если это будет полезно для всех остальных.

Из того, что я могу сказать, проблема возникает, когда файлы app / config / initializers / development.rb (и production.rb) генерируются для нового проекта с использованием некоторых более новых версий Rails (я не уверен, в какой версии он запущен Я только тестировал Rails 4.1.4). Г-н Хартл использует Rails 4.0.8 для своего урока, и это самая высокая версия, которую я тестировал, в которой новый синтаксис не встречается.

В Rails 4.1.4 и, возможно, в некоторых других версиях после 4.0.8 первая строка в этих файлах генерируется как Rails.application.configure.do вместо того, чтобы использовать проект под названием sample_app В качестве примера, SampleApp::Application.configure.do как в 4.0.8.

Я новичок в Rails, поэтому я не знаю, почему этот синтаксис изменился в новых версиях. Я предполагаю, что это намеренно и как-то лучше, чем по-старому. Скорее всего, г-н Хартл примет это во внимание в будущих выпусках своего учебника, которые будут обновлены для версий Rails, которые включают это изменение.

До тех пор, смотрите мой другой ответ в вопросе, который я упомянул выше, для более подробного объяснения того, как я справился с этим на Windows 7, но вот что это:

Убедитесь, что вы используете версию Rails, указанную для руководства (4.0.8) в вашем локальном репозитории / корневом каталоге разработки, прежде чем создавать новый проект. Обновление вашего Gemfile после создания проекта все еще важно, но это не решит эту проблему, если сами файлы были созданы с использованием более новой версии Rails. В этом случае вам придется войти и отредактировать эту строку вручную, как предложили другие пользователи.

У меня была эта проблема, когда я возился с моим Gemfile. Например, я создал приложение, используя rails 4.0.2 или что-то в этом роде, поэтому из-за некоторых ошибок я изменил его на 4.1.1, которые вызывают такую ​​же проблему как в разработке, так и в производстве.

Другие вопросы по тегам