try(), 让你的Rails代码更简洁

少于 1 分钟 阅读

看看这样的代码?

<% if current_user && current_user.is_admin? %>
	<%= do something %>
<% end%>

而事实上可以写成这样

 <% if current_user.try(:is_admin?) %>
 	<%= do something %>
 <% end%>

current_user为nil的时候,try不会抛出异常,而是返回nil

多个try还可以链接调用

current_user.try(:is_admin?).try(:home_address)

传参数和block

  current_user.try(:is_old_than?, 21)
  current_user.orders.try(:collect) { |p| p.order_id }

分类:

最新的:

留下评论