неопределенная локальная переменная или метод `meta_title'
Пытаюсь настроить несколько тегов meta_title для сайта, и, похоже, я столкнулся с ошибкой. Проверив несколько раз свои файлы, я не вижу ошибки. Любая помощь в обнаружении будет оценена
Я думал, что где-то была орфографическая ошибка, но не вижу. Я также подумал, что это может быть потому, что мне нужно перезапустить локальный сервер, поскольку я испортил файлы конфигурации, но это также не разрешило мою ошибку.
config / meta.yml
meta_product_name: "A PRODUCT NAME I HAVE REMOVED"
meta_title: "A PRODUCT DESCRIPTION OF SIMILAR LENGTH TO THIS"
meta_description: "A description of fair length to describe the above"
meta_image: "image.png"
twitter_account: "@someone"
конфигурация / инициализаторы / default_meta.rb
DEFAULT_META = YAML.load_file(Rails.root.join("config/meta.yml"))
приложение / помощники / meta_tags_helper.rb
module MetaTagsHelper
def meta_title
content_for?(:meta_title) ? content_for(:meta_title) : DEFAULT_META["meta_title"]
end
def meta_description
content_for?(:meta_description) ? content_for(:meta_description) : DEFAULT_META["meta_description"]
end
def meta_image
meta_image = (content_for?(:meta_image) ? content_for(:meta_image) : DEFAULT_META["meta_image"])
# little twist to make it work equally with an asset or a url
meta_image.starts_with?("http") ? meta_image : image_url(meta_image)
end
end
приложение / контроллеры / application_controller.rb
def default_url_options
{ host: ENV["DOMAIN"] || "localhost:3000" }
end
приложение / просмотров / макеты / application.html.erb
<title><%= meta_title %></title>
Учитывая вышеизложенное, я ожидаю, что страница загрузится, и когда я попытаюсь поделиться ею в FB и т. Д., Изображение и рекламное объявление будут моего собственного дизайна. Все, что я получаю на localhost, - это ошибка undefined meta_title
2 ответа
Я не уверен, почему это была проблема, препятствующая загрузке страницы, но это единственное, чего я коснулся с момента публикации этого вопроса:
В имени файла meta_tags_helper.rb после.rb мог быть лишний пробел. Я открыл вкладку переименования, удалил пробел и сохранил. Теперь программа работает. Я не могу понять, почему такое незначительное изменение может иметь здесь значение.
Мои знания о помощниках достигают уровня 3 или 4.
Мне нужно было включить помощника в контроллер в той области, на которую я хотел, чтобы он повлиял, например:
# for instance, in application_controller.rb
include MetaTagsHelper
Надеюсь, сейчас по-другому быть не должно.