ActionView :: Template :: Error в приложении Rails - PullRequest
0 голосов
/ 07 мая 2018

Для этого кода в представлении,

<%= @activity.destination.try(:name) %>

Иногда я получаю ошибку шаблона:

ActionView::Template::Error (undefined method `destination' for nil:NilClass)

а иногда нет.

Что это за ошибка?

Ответы [ 4 ]

0 голосов
/ 07 мая 2018

Я не понимаю необычное поведение ошибки, возникающей иногда, а не в другое время. Просто чтобы быть в безопасности, я думаю, вы должны сделать одну из следующих вещей:

<%= @activity.try(:destination).try(:name) %>

0 голосов
/ 07 мая 2018

Я не понимаю необычное поведение ошибки, возникающей иногда, а не в другое время. Просто чтобы быть в безопасности, я думаю, вы должны сделать одну из следующих вещей:

<%= if @activity.destination %>
  <%= @activity.destination.try(:name) %>
<%= end %>

Или

<%= @activity&.destination.try(:name) %>
0 голосов
/ 07 мая 2018
ActionView::Template::Error (undefined method `destination' for nil:NilClass)

Это означает, что @activ - ноль. так что вы можете сделать как

<% if @activity.present? %>
  <%= @activity.destination.try(:name) %>
<% end %>

Это решит вашу проблему.

0 голосов
/ 07 мая 2018

Это не имеет ничего общего с шаблоном.Ваш @activity иногда nil, а иногда нет, как говорится в сообщении об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...