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

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" всех файлов, упомянутых здесь. Могут ли направляющие быть запущенными как обычный пользователь? Похоже, это не дало бы мне зайти так далеко, если бы это было так.

4b9b3361

Ответ 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?

Надеюсь, это поможет!