cjm*_*671 32 ruby ruby-on-rails erb
<% if dashboard_pane_counter.remainder(3) == 0 %>
do something
<% end>
Run Code Online (Sandbox Code Playgroud)
如果未定义dasboard_pane_counter,如何将其评估为false而不是抛出异常?
Mat*_*att 50
<% if defined?(:dashboard_pane_counter) && dashboard_pane_counter.remainder(3) == 0 %>
# do_something here, this assumes that dashboard_pane_counter is defined, but not nil
<% end %>
Run Code Online (Sandbox Code Playgroud)
使用rails和实例变量时,nil try定义了一个方法,因此你可以这样做:
<% if @dashboard_pane_counter.try(:remainder(3)) == 0 %>
#do something
<% end %>
Run Code Online (Sandbox Code Playgroud)
因此,如果未定义实例变量,try(:anything)则返回nil,因此计算结果为false.而且nil == 0是假的
可以使用local_assigns,因为这个问题来自几年前,所以我验证了它在以前版本的rails中是否存在
<% if local_assigns[:dashboard_pane_counter]
&& dashboard_pane_counter.remainder(3) == 0%>
<% end %>
Run Code Online (Sandbox Code Playgroud)
在这里的笔记中
http://apidock.com/rails/ActionController/Base/render
| 归档时间: |
|
| 查看次数: |
31236 次 |
| 最近记录: |