这个别的if语句怎么了?

时间:2011-09-02 02:22:33

标签: ruby-on-rails ruby ruby-on-rails-3 paperclip

基本上我的控制器只是抓住所有成员:@members = Member.all和我循环浏览它们,同时检查他们是否上传了个人资料图片,如果没有,则应加载默认值:

<% @members.each do |member| %>
    <% unless member.image.nil? %>
      <li style="float:left; width:100px;">
        <%= image_tag(member.image.url(:tiny)) %>
        <%= link_to member.email, member_path(member)  %>
      </li>
      <% else %>
      <li style="float:left; width:100px;">
        <%= image_tag("default_member_small.jpg") %>
        <%= link_to member.email, member_path(member)  %>
      </li>
    <% end %>
<% end %>

似乎认为每个成员都有一个个人资料图片,图片标签正在为丢失的图片调用“images / tiny / missing.png”。

是什么给出了?

1 个答案:

答案 0 :(得分:1)

我猜你正在使用回形针,如果你是,你不应该使用 nil?,你应该使用现在?

<% @members.each do |member| %>
    <% if member.image.present? %>
      <li style="float:left; width:100px;">
        <%= image_tag(member.image.url(:tiny)) %>
        <%= link_to member.email, member_path(member)  %>
      </li>
      <% else %>
      <li style="float:left; width:100px;">
        <%= image_tag("default_member_small.jpg") %>
        <%= link_to member.email, member_path(member)  %>
      </li>
    <% end %>
<% end %>

而不是如果你应该只将这个图像命名为paperclip,那么代码中不应该有任何ifs用于这种处理。