Rails应用程序中的ActionView :: Template :: Error

时间:2018-05-07 07:05:07

标签: ruby-on-rails ruby

对于视图中的此代码,

f = open('stack.txt')
s = open('save.txt','w')
for i in f.read().split(' '):
    if(len(i)!=8):
        continue
    else:
        try:
            print(int(i))#if not number,int() will make an error
            s.write(i)
        except:
            pass
f.close()
s.close()

我有时会收到模板错误:

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

有时没有。

这是什么类型的错误?

4 个答案:

答案 0 :(得分:1)

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

这意味着@activity是零。所以你可以这样做

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

这将解决您的问题。

答案 1 :(得分:0)

它与模板没有任何关系。您的@activity有时是nil,有时不是,就像错误消息所说的那样。

答案 2 :(得分:0)

我不理解有时出现的错误的异常行为,而不是其他时候。为了安全起见,我认为你应该做以下事情之一:

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

或者

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

答案 3 :(得分:0)

我不理解有时出现的错误的异常行为,而不是其他时候。为了安全起见,我认为你应该做以下事情之一:

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