use*_*621 2 ruby string null ruby-on-rails heroku
我有这个简单的结构:
<% if !@user.address.empty? && !@user.zip.empty? %>
<%= @user.address+', '+@user.zip%>
<% end %>
Run Code Online (Sandbox Code Playgroud)
如果是address
并zip
填写,那没关系.但如果没有,在localhost上不会打印出中间行.那也没问题.
但在Heroku上,如果address
并zip
没有填写,我得到的错误
ActionView::Template::Error (undefined method `empty?' for nil:NilClass):
Run Code Online (Sandbox Code Playgroud)
怎么可能?注意:address
并zip
具有数据类型varchar(255)
.
编辑:我忘了添加一个重要的注意事项:@user
为NEVER nil
.
尝试使用 present?
在表面上present?
只是!blank?
将测试空字符串以及为nil
,{}
和[]
.
在你的情况下:
<% if @user.address.present? && @user.zip.present? %>
<%= "#@user.address, #@user.zip" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
118 次 |
最近记录: |