我需要调整旧的rails项目。
它从数据库生成一个excel文件。
联系人可以与公司联系或不联系。 如果它链接到公司并且在公司上设置了defaultaddress,那么excel表只会打印公司的联系信息。
我需要做的是,在这种情况下,我需要将私人联系信息和公司信息导出到Excel工作表。
我找到了excel生成所在的文件,只是想写这样的东西:
<% @defaultaddress_id = Contact.find(qc.contact.id).defaultaddress_id %>
<% @address = Address.find(@defaultaddress_id) unless @defaultaddress.empty? %>
<%= @address %>
(我测试过只打印defaultaddress_id,这很好。)
但我在日志中找到了这个;
ActionView::TemplateError (undefined method `empty?' for nil:NilClass) on line #87 of app/views/query/_report.html.erb:
所以我尝试了以下内容;
<% @address = Address.find(@defaultaddress_id) unless @defaultaddress_id == 0 %>
但现在它是sais
ActionView::TemplateError (Couldn't find Address without an ID) on line #87 of app/views/query/_report.html.erb:
这不正是我写的吗?除非FK字段中有什么内容,否则不要使用该方法?
defaultaddress_id是Adress表的FK。
答案 0 :(得分:1)
我相信@defaultaddress
应为@defaultaddress_id
如果 nil 值,也会使用.blank?
代替.empty?
。
<% @address = Address.find(@defaultaddress_id) unless @defaultaddress_id.blank? %>
nil.empty?
#=> NoMethodError: undefined method `empty?' for nil:NilClass
nil.blank?
#=> true