неопределенная локальная переменная или метод `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

Надеюсь, сейчас по-другому быть не должно.

Другие вопросы по тегам