【发布时间】:2018-11-14 16:28:02
【问题描述】:
我在自己的观点中尝试过这个
<% if @post.url == nil %>
<h1>File not found!</h1>
<% end %>
在后期控制器中我有
def show
@post = Post.find(params[:id])
end
如何判断@post.url是否为空?
【问题讨论】:
标签: ruby-on-rails ruby
我在自己的观点中尝试过这个
<% if @post.url == nil %>
<h1>File not found!</h1>
<% end %>
在后期控制器中我有
def show
@post = Post.find(params[:id])
end
如何判断@post.url是否为空?
【问题讨论】:
标签: ruby-on-rails ruby
我会选择去
if @post.url.nil?
当@post.url 为nil 时返回true,但当@post.url 为空字符串时返回false。
或者,您可以使用
if @post.url.blank?
当@post.url 是nil 或空字符串时,这两种情况都返回true。
【讨论】:
ActiveRecord::Base#find 如果找不到记录,会引发异常,不是吗?
page.url 可能为空白。我不确定ActiveRecord::Base#find 在这种情况下引发异常可能有什么帮助。
<% if @post.url == nil %> 会起作用。 blank? 可能是解决方案,是的。
String 是"" 但blank? 字符串是empty? String 或纯空格" " 或"\r\n\t" 使用empty? || (/\A[[:space:]]*\z/ === self) (省略了一些错误处理)
类似问题的以下答案似乎是您所追求的:
if my_string.to_s.empty?
# It's nil or empty
end
见:Is There a Better Way of Checking Nil or Length == 0 of a String in Ruby?
如果您需要比检查 nil 或空更复杂的方法,那么您可能需要一种 URL 验证方法。
【讨论】: