Ошибка запуска 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
Ответы
Ответ 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, что изменение вызывает эту ту же проблему как в разработке, так и в производстве