Ruby on Rails / HAML image_path无法在其他条件下工作?

时间:2016-09-24 20:47:35

标签: ruby-on-rails ruby haml

我目前正在使用haml开展一个关于RoR的项目,我有一个我以前从未见过的问题。

我有一个"用户个人资料"带有可选图像。我想显示图像是否存在,如果没有,我会显示一个占位符(存储在assets =>" admin / avatar.png"。所以,这是我的示例代码如下:

-unless @user.image.nil?
    =image_tag @user.image.url,class:"img-responsive img-circle",style:"width:150px;height:150px;margin:auto;"
-else
    %img.img-responsive.img-circle{:src => image_path("admin/avatar.png"),style:"width:150px;height:150px;margin:auto;"}
%img.img-responsive.img-circle{:src => image_path("admin/avatar.png"),style:"width:150px;height:150px;margin:auto;"}

第一个

%img.img-responsive.img-circle{:src => image_path("admin/avatar.png"),style:"width:150px;height:150px;margin:auto;"}

不起作用(显示"缺少")并且seconde实际上正在工作。我有点迷失了。

任何人?

感谢。

1 个答案:

答案 0 :(得分:0)

unless else是一种代码味道

我建议的解决方案:

- if @user.image.present?
 = image_tag(@user.image.url, class:"img-responsive img-circle",style:"width:150px;height:150px;margin:auto;")
- else
 = image_tag('admin/avatar', class:"img-responsive img-circle", style:"width:150px;height:150px;margin:auto;")