Совершенно новый для Ruby on Rails, и я застрял, возможно, в легкой задаче. В основном я работаю над приложением для коллег и вам нужно добавить дополнительную страницу, показывающую пользователям, как работает приложение. Я уже написал HTML и стили. Я просто не знаю, как точно добавить его в Rails и правильно настроить маршруты. Любая помощь будет оценена!
Добавление новой страницы в Ruby on Rails
Ответ 1
Сначала убедитесь, что ваш коллега еще не создал контроллер для обработки статических страниц. Посмотрите под app/controllers
для контроллеров, названных чем-то похожим на directories_controller
или pages_controller
и т.д. Если у него есть, следуйте шаблону, который уже настроил ваш коллега (вы можете попросить его/ее для руководства в этот момент), Если такой контроллер не существует, следуйте приведенным ниже советам.
Вы можете создать контроллер с именем вроде PagesController
, который определяет методы, соответствующие маршруту. Например, ваша дополнительная страница может называться "help", и в этом случае вы можете определить такой контроллер:
class PagesController < ActionController::Base
def help
# put any code here that you need
# (although for a static view you probably won't have any)
end
end
Затем вам нужно создать новую папку под app/views
под названием pages
, и вы можете добавить свою статическую страницу туда (приложение/виды/страницы) с расширением .erb
. Использование .erb
позволит вашей новой странице использовать макет по умолчанию.
Наконец, вам нужно добавить этот контроллер в routes.rb
в (config/routes.rb)
, чтобы указать рельсы, где искать страницу /help
:
match '/help' => 'pages#help'
Ответ 2
Статические страницы
Если ваши страницы действительно статичны (в них нет ничего динамического), их можно оставить в каталоге /public
, и они будут доступны напрямую.
Файл в ../public/help.html
будет доступен в http://yourdomain.com/help.html
Полустатические страницы
Если вы хотите использовать свои макеты, но просто предоставляете статический контент, вы можете сделать для него контроллер, маршруты и представления следующим образом.
# static_controller.rb
class StaticController < ApplicationController
def show
render params[:page]
end
end
# towards the end of routes.rb
get "/:page" => "static#show"
И сделайте свои представления в app/views/static
. Вы можете использовать только простой html или erb. Вид под названием help.html.erb
будет доступен в http://yourdomain.com/help
Любой файл вида, созданный в app/views/static
, будет доступен без изменения ваших маршрутов или контроллера.