Ruby on Rails: Hello World
Долгое время Java dev, первый раз Ruby dev. Попытка достичь шага "привет мир" с помощью приложения Rails и с трудом.
Я уверен, что я пропустил что-то основное. Тем не менее, ни один из StackOverflow "Вопросы со сходными названиями" и Google "рубиновые рельсы привет мир" (или их варианты) не уточнили, что мне не хватает.
У меня есть рубин (v1.9.3p194), драгоценный камень (1.8.23) и рельсы (3.2.3), установленные через RVM. Я сгенерировал контроллер, используя:
rails generate controller common
В по умолчанию "config/routes.rb" у меня есть следующие две попытки маршрутизации:
Web::Application.routes.draw do
root :to => "common#index"
match ':controller(/:action(/:id))(.:format)'
end
Когда я изначально запускал "сервер rails" и загружал "http://localhost: 3000/common" в своем браузере, я увидел следующее:
Unknown action
The action 'index' could not be found for CommonController
Я узнал, что это потому, что "индекс" не был определен для моего общего контроллера, поэтому я редактировал "app/controllerlers/common_controller.rb", чтобы содержать следующее:
class CommonController < ApplicationController
def index
end
end
Теперь я вижу следующее в "http://localhost: 3000/common" в моем браузере:
Template is missing
Missing template common/index, application/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/coding/workspace/[My] Toolbag/web/app/views"
Я вижу то же самое в корне, что имеет смысл.
Из того, что я нашел, это явно связано с тем, что у меня нет никакого рендеринга в моем контроллере, поэтому я считаю, что вместо этого он должен что-то проверять на "app/views/common/index.html.erb" - однако, У меня есть файл, содержащий следующее:
<h1>Hello World</h1>
Я также попытался переименовать "index.html.erb" в "_index.html.erb", "index.html" и "index", все на основе вариантов Googling ошибки консоли "ActionView:: Missing Шаблон" и аналогичный вывод браузера выше.
Многие из результатов Google содержат фрагменты предложений, но без четкого руководства по редактированию файлов с указанными предложениями или повторения шагов, которые я уже сделал выше.
Если кто-нибудь может посоветовать то, что мне не хватает, я был бы признателен.
PS: Я работаю как суперпользователь, с правами "root: root" всех файлов, упомянутых здесь. Могут ли направляющие быть запущенными как обычный пользователь? Похоже, это не дало бы мне зайти так далеко, если бы это было так.
Ответы
Ответ 1
Ого. Я на самом деле просто наткнулся на реальную проблему с корнем:
Я создавал свой проект в папке с скобкой в имени, то есть я запускал "rails new web" из "/coding/workspace/[My] Toolbag".
Сегодня мне довелось снова попробовать "/coding/workspace", и он наконец-то сработал. Итак, я тестировал "рельсы новой сети" из следующих мест, чтобы отразить мое подозрение:
/coding/workspace/test1
/coding/workspace/test 2
/coding/workspace/test [3]
/coding/workspace/test [4
/coding/workspace/test ]5
/coding/workspace/test [6/subfolder
Подозрение подтверждено. Рельсы проектов в папках 3,4,6 демонстрируют проблему, которую я описал в этом вопросе, в то время как рельсовые проекты в папках 1,2,5 работают нормально.
В частности, проблема заключается в открытой скобке в любом месте пути: "["
Я использую Linux Mint. Проблема может применяться еще шире, хотя я еще не попытался воспроизвести другие дистрибутивы, Windows или Mac.
С благодарностью Бретт Сандерс за всю свою неоднократную помощь и подтверждение того, что я должен был правильно подходить, я представляю этот ответ и отмечаю этот как правильно, в случае, если кто-то еще сталкивается с той же проблемой.
Ответ 2
Это странно. Я просто повторил ваши шаги точно и получил его на работу (используя рельсы 3.2.3 и ruby 1.9.3-p0), и при посещении localhost: 3000/common я получил "Hello World".
http://grab.by/dg6Y
Вот то, что я бы попробовал быстро, чтобы убедиться, что это не проблема с вашей настройкой:
1) cd внутри каталога проектов rails
2) выдает команды терминала
rails g scaffold имя пользователя: строка email: строка
rake db: migrate
3) посетите этот URL-адрес
http://localhost:3000/users
Если ваши рельсы установлены правильно, вы должны увидеть это
http://grab.by/dg74
Если эти шаги не сработают, то с вашей настройкой происходит что-то странное.
Кроме того, обязательно удалите файл public/index.html
из своего приложения. Если вы не удалите его, вы не сможете увидеть свою пользовательскую корневую страницу, указанную в файле маршрутов.
Если выше не работает, может быть, проблема с вашей версией Ruby?
Надеюсь, это поможет!