Я создал приложение Rails, и я играю с внутренними элементами. Раньше мой application.html.erb правильно отображался, но теперь кажется, что Rails полностью игнорирует его, потому что он даже не генерирует ошибку.application.html.erb все еще не отображается
В связи с этой проблемой возникло множество вопросов по переполнению стека. Я посмотрел, что я думаю, это все, но никто не помог.
Мои маршруты:
Rails.application.routes.draw do
# static_pages from rails tutorial ch. 3
get 'static_pages/home'
get 'static_pages/help'
get 'static_pages/about'
end
Здесь вы вид/макет/application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>This Title is not showing up</title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body>
<p> why isnt this showing up?? </p>
<%= yield %>
</body>
</html>
Вот static_pages_controller:
class StaticPagesController < ApplicationController
layout 'application' #<- I know this shouldn't be necessary, but I thought i'd try
def initialize
@locals = {:page_title => 'Default'}
end
def about
@locals[:page_title] = 'About'
render @locals
end
def help
@locals[:page_title] = 'Help'
render @locals
end
def home
@locals[:page_title] = 'Home'
render @locals
end
end
Вот контроллер Application :
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
end
Других макетов нет. Моя папка Просмотров имеет следующую структуру:
-Views
|-layouts
||-application.html.erb
|
|-static_pages
||-about.html.erb
||-home.html.erb
||-help.html.erb
Я пытался целенаправленно генерирующей ошибку в application.html.erb, называя переменные, которые не существуют и безотносительно другие махинаций. Rails полностью игнорирует меня, и я чувствую себя неуверенно.
Все, что я хотел сделать, это показать имя страницы в <title>
, но я не могу даже получить открытый текст для рендеринга. Как я могу заставить это работать, чтобы я мог нормально потерпеть неудачу при получении переменной контроллера в заголовке?
Да, вы его получили. Могу я спросить, как мне создать @locals, чтобы перейти к представлению? – ZAR
Попробуйте использовать фильтр 'before_action' или просто вызовите какой-то общий метод из всех ваших действий. –
Awesome - спасибо! – ZAR