【问题标题】:NoMethodError - carrierwave - private method 'format' for HeroUploaderNoMethodError -carrierwave - HeroUploader 的私有方法“格式”
【发布时间】:2013-07-25 01:53:48
【问题描述】:

我有以下上传器:

    class HeroUploader < CarrierWave::Uploader::Base

  # Include RMagick or MiniMagick support:
  include CarrierWave::RMagick
  #include CarrierWave::MiniMagick


  # Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
  include Sprockets::Helpers::RailsHelper
  include Sprockets::Helpers::IsolatedHelper

  storage :fog

这是模型:

class Homepage < ActiveRecord::Base
  attr_accessible :banner, :banner_text1, :banner_text2, :banner_text3, :button, :hero

   mount_uploader :hero, HeroUploader
   mount_uploader :banner, BannerUploader
   mount_uploader :button, ButtonUploader


end

当我尝试在视图上调用 Hero Image 时,我得到: amazons3.hat_beach.jpg:HeroUploader 调用私有方法“格式”

横幅和按钮也是如此。我在同一个 Rails 应用中确实有另一个上传者。

关于如何解决这个问题的任何想法?

谢谢!

山姆

编辑以添加视图:

  <body>
        <div class="row-fluid" style="padding-top: 100px; padding-bottom: 30px;"> 
            <div id="myCarousel" class="carousel slide" data-interval="30" >

                <!-- Carousel items -->
            <div class="carousel-inner">
              <div class="item">
              <div class="row-fluid">
                  <div class="span12">
                     <div class="row-fluid">
                      <div class="span6 offset1" > 
                        <a align="center" href="http://pinterest.com/newoutfitpr/" target="_blank"> <%= image_tag @homepages.first.hero,  class: "hero-image-size" %> </a>
                      </div> 
                      <div class="span4"> 
                        <h3 align="center"><%= image_tag @homepages.first.banner %></h3>


                            <p class="product-description"><%= @homepages.first.banner_text1 %> </p>

                            <p class="product-description"><%= @homepages.first.banner_text2 %></p>

                            <p class="product-description"><%= @homepages.first.banner_text3 %></p>
                            <p  align="center">
                            <%= link_to guest_collage_path, :method => :post do %>
                                <%= image_tag(@homepages.first.button, :alt => "Get Started") %>
                          <% end %></p>


                      </div> 
                    </div>
                  </div>
              </div>
            </div>

【问题讨论】:

  • @samanthaCabel 你在哪里改变图片的格式吗?你检查上传的图片是否存储在 s3 存储桶中?
  • 我正在调用一些 css 来更改图像的大小,但是我在没有 css 类的情况下尝试了它,并且得到了相同的错误消息。是的,图片已经上传到 S3 - 我可以在那里看到它。
  • 所有上传类中是否只有4行代码?你能在你试图显示这张图片的地方显示一些视图代码吗?
  • 添加了视图 - 上传者应该很简单,对吧?我正在使用carrierwave的标准上传器。

标签: ruby-on-rails ruby amazon-s3 carrierwave


【解决方案1】:

试试这个

而不是

<%= image_tag @homepages.first.banner %>

使用这个

<%= image_tag @homepages.first.banner_url %>

请观看此 railscasts 视频

http://railscasts.com/episodes/253-carrierwave-file-uploads

【讨论】:

  • 谢谢,我已经看了一段时间的 railscasts 了。答案其实不是homepages.first.banner.image_url,而是homepages.first.banner_url。您要编辑答案以便我接受吗?
  • @SamanthaCabral,在你提到之前发现了我的错误,并更新了同样的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多