@coffee_hour = Plan.find_by_event (: coffee_hour) ... Можно ли связать с помощью такой переменной? - PullRequest
0 голосов
/ 25 мая 2020

Таблица «Мои ссылки» содержит пять различных событий, и я использую частичные события, потому что они разбросаны по странице. Например, «coffee_hour» и «wine_time». У каждого события есть URL-адрес и время. В моем контроллере у меня есть:

 @coffee = Link.find_by(event: "coffee")
 @wine = Link.find_by(event: "wine")

И мои частичные данные выглядят примерно так:

  <p>Join us for a cup of coffee... <%= link_to "by clicking here.", coffee.url %> ...</p>

, а на моей домашней странице код:

  <%= render partial: "links/coffee", locals: { coffee: @coffee } %>

Там являются отдельными частями для всех пяти типов событий. Но приведенный выше результат приводит к «неопознанному методу 'url' для nil Nil: Class. Когда я вставляю фразу collection: @links перед locals, я не получаю сообщение об ошибке, но также ничего не возвращается. Мой код работает в консоли , но мой синтаксис Rails должен быть отключен. Код в консоли:

  @coffee = Link.find_by(event: "coffee")
  @coffee.url # => correct url

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

Я наконец узнал, что моя проблема в том, что у меня ничего не было под индексом def в контроллере ссылок. установка

  @links = Link.all

решила проблему для меня. Глупая ошибка. Всем спасибо.

0 голосов
/ 26 мая 2020

У вас есть ошибка в коде вашего контроллера. Измените его на это:

@coffee = Link.find_by(event: ‘coffee’)
@wine = Link.find_by(event: ‘wine’)

Как видите, в настоящее время у вас есть скобки только вокруг строк. Вам либо понадобятся скобки вокруг event: string, либо удалите скобки вообще.

...