Подтвердить что ты не робот

Ошибка запуска Rails-сервера: undefined метод 'configure'

Я новичок в рельсах и работаю через учебник Hartl. Все было хорошо, пока я не попытался сделать учебник во второй раз и создал еще один проект, пытающийся использовать последнюю версию рельсов. Когда я пытаюсь загрузить 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
4b9b3361

Ответ 1

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

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

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

Rails.application.configure do

To

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

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

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

Ответ 2

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

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

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

$ rails new app_name

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

$ rvm 2.0.0

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

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

Ответ 3

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

Ответ 4

Я отправил (возможно, слишком длинный) ответ по аналогичному вопросу: rails - NoMethodError: undefined метод` 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, но tl; dr:

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

Ответ 5

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