#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" %>