使用rails 3.1时设置默认URL?

时间:2011-07-27 01:24:50

标签: ruby-on-rails-3 ruby-on-rails-3.1 carrierwave

我认为新的资产管道正在弄乱CarrierWave默认方法。我有我想要用作app/assets/images/listing_defaults/default.png存储的默认图像的文件。

在我的上传器中,我有以下

def default_url
  "assets/listing_defaults/" + [version_name, "default.png"].compact.join('_')
end

当我运行我的应用时,图片可以在该地址(localhost:3000/assets/listing_defaults/default.png

浏览

出于某种原因,当我尝试将默认图像显示在我的视图中时,我什么都没得到。

<p>
  <b>Images:</b>
  <ul>
    <% @listing.images.each do |image| -%>
      <li><%= image_tag image.image_url.to_s %></li>
    <% end -%>
  </ul>
</p>

然而,上传的文件似乎工作正常。有什么想法吗?

顺便说一句,我已经尝试将default_url设置为以下但没有运气。

"#{Rails.root}/app/assets/images/listing_defaults/" + [version_name, "default.png"].compact.join('_')

3 个答案:

答案 0 :(得分:0)

看起来你错过了领先的正斜杠:

"/assets/listing_defaults/" + [version_name, "default.png"].compact.join('_')

答案 1 :(得分:0)

我刚修好了!我遇到了同样的问题。

我称之为...... user.avatar.tiny.url

如果附件不存在,那将转到默认网址:)

答案 2 :(得分:0)

我只是将我的图像放在assets / image文件夹和上传文件中:

[version_name, "image_name.png"].compact.join('_')

视图:

<%= image_tag @something.image_url%>