bra*_*boy 2 if-statement ruby-on-rails
我在其中一个视图中有一些代码.我觉得它有太多的条件.它只是检查ActiveRecord对象的状态并设置图像.有没有更好的方法在Rails中执行以下操作?
<td class="notification_msg">
<% if notification.status == NOTIFICATION_STATUS.index("Failure") %>
<img src="images/failure.png" style="vertical-align: middle"/>
<% elsif notification.status == NOTIFICATION_STATUS.index("Success") %>
<img src="images/success.png" style="vertical-align: middle"/>
<% elsif notification.status == NOTIFICATION_STATUS.index("Warning") %>
<img src="images/warning.gif" style="vertical-align: middle"/>
<% else %>
<img src="images/unknown.gif" style="vertical-align: middle"/>
<% end %>
<%= notification.message %> <%= cta_links_for(notification) -%>
</td>
Run Code Online (Sandbox Code Playgroud)
谢谢
我把逻辑拉成了帮手.你的问题:
<td class="notification_msg">
<%= notification_image(notification.status) %>
<%= notification.message %> <%= cta_links_for(notification) -%>
</td>
Run Code Online (Sandbox Code Playgroud)
然后在你的视图助手中:
def notification_image(status)
name = NOTIFICATION_STATUS[status].downcase
return image_tag "#{name}.png"
end
Run Code Online (Sandbox Code Playgroud)
当然,没有内联样式.所以放入.notification_msg img{vertical-align:middle;}你的css文件.
| 归档时间: |
|
| 查看次数: |
280 次 |
| 最近记录: |