Rails3 — Создать статическую веб-страницу?

#ruby-on-rails-3

#ruby-on-rails-3

Вопрос:

Я хочу создавать статические веб-страницы в своем приложении — T amp; Cs, About, Privacy и т.д… Я мог бы просто создать пустые страницы и поместить их в общую папку и поместить на них ссылки ‘href’. Считается ли это лучшей практикой? или я должен использовать rails g controller для каждого из них? В чем разница…

Ответ №1:

HighVoltage — это драгоценный камень, который помогает именно с тем, что вы делаете:

https://github.com/thoughtbot/high_voltage

Это действительно упрощает обработку этих сценариев. Из документов:

Напишите свои статические страницы и поместите их в каталог RAILS_ROOT / app /views /pages.

 $ mkdir app/views/pages
$ touch app/views/pages/about.html.erb
  

Разместив там что-то интересное, вы можете ссылаться на это из любого места вашего приложения с помощью:

 link_to "About", page_path("about")
  

Это также сработает, если вам нравится более явный стиль:

 link_to "About", page_path(:id => "about")
  

Ответ №2:

Часто я создаю site контроллер, у которого есть действия для каждой из общедоступных страниц, предполагая, что на общедоступной стороне не будет тонны контента. Если бы было больше, я бы посмотрел на какую-нибудь CMS. В любом случае, создайте site контроллер, а затем создайте маршруты и шаблоны для каждой из нужных вам страниц. Таким образом, вы сможете использовать макет и использовать помощники Rails, если они вам понадобятся.

Ответ №3:

Конечно, вы можете просто создать about.html и т.д. и поместить их в public папку. Если это просто полностью статическая веб-страница, то контроллер не добавляет значения. Подкаталоги также отлично работают в public папке, как и следовало ожидать.

Ответ №4:

Я решил это с помощью этого потрясающего драгоценного камня https://github.com/thoughtbot/high_voltage

Ответ №5:

До меня только что дошло, что на самом деле это должно быть довольно просто, надеюсь, обдумайте это:

Создайте маршрут, подобный, например:

 match '/about' => "static#about"  
  

~ затем создайте простой контроллер, в данном случае app/controllers/static_controller.rb

 class StaticController < ApplicationController
  respond_to :html
  def about
    # nuttin
  end
end
  

~ теперь все, что нам нужно, это представление: ( /app/views/static/about.html.erb )

 Hey!
  

Отсортировано

Комментарии:

1. забыл, что написал это и пришел сюда, чтобы помочь себе :]

Ответ №6:

Создать статическую страницу «home»

 $ rails generate controller Pages home
  

Добавлен новый контроллер «pages» с действием «home». Новый маршрут вставляется в ‘config/routes.rb’

 # config/routes.rb
get "pages/home"
  

Для создания ссылки на страницу «Home»

 <%= link_to "Home", :controller => "pages", :action => "home" %>