【问题标题】:carrierwave image not loading into source code载波图像未加载到源代码中
【发布时间】:2014-01-14 19:35:40
【问题描述】:

不确定我在这方面做错了什么。我已经关注了 Carrierwave 的 Rails Cast,但遇到了一个奇怪的错误,即图像根本没有显示 - (HTML) 源代码显示图像标签,但其中没有任何内容。

投资组合模型代码:

 class Portfolio < ActiveRecord::Base
  validates :title, :content, presence: true
  mount_uploader :feature_image, FeatureImageUploader   
end

特征图片上传器代码:

class FeatureImageUploader < CarrierWave::Uploader::Base
 storage :file

 def store_dir
  "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
 end

 def extension_white_list
  %w(jpg jpeg gif png)
 end
end

显示.html.haml 代码:

= @portfolio.title
=image_tag @portfolio.feature_image_url.to_s
=markdown(@portfolio.content).html_safe

还有我的表单代码:

.field
 = f.label :title
 %br
 = f.text_field :title

.field
 = f.label :date
 %br
 = f.datetime_select :date

.field
 = f.label :content
 %br
 = f.text_area :content, rows: 10

.field
 = f.label :feature_image
 = f.file_field :feature_image

.actions
 = f.submit

我的 HTML 源代码正在显示:

<img src=""/>

我已经运行了我的 rake 测试,一切都很好,没有失败。有人介意看看我吗,真的很感激。

谢谢!

编辑

这是我添加新投资组合条目时服务器日志中的 pastebin - http://pastebin.com/1zNxB975

【问题讨论】:

  • 从文档中我看到你的代码应该是这样的:=image_tag @portfolio.feature_image.url,你能确认你的图片是否上传了吗?可能是属性被保存到数据库中但实际上没有文件被保存。
  • 这里还有一件事 - 有空的 urlsrc attribute 可能是因为 attributesimage 没有保存,在这种情况下你需要发布 logs 的上传图片时的服务器。
  • 嘿,我调整了 image_tag 但没有骰子。我已经编辑了我的原始帖子以包含服务器日志,我不知道它是否被保存。 @magnum2002
  • 所以你在日志中有错误Unpermitted parameters: feature_image,需要查看portofolios_controller
  • 也许您忘记在允许的参数中添加feature_image

标签: ruby ruby-on-rails-3 ruby-on-rails-4 haml carrierwave


【解决方案1】:

在视图中

=image_tag @portfolio.feature_image.url

和控制器

portofolios_controller.rb

...
private
    def portofolio_params
      params.require(:portofolio).permit(:title, :date, :content, :feature_image)
    end

不确定您可能拥有和需要的其他参数,但 :feature_image 是必须的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    相关资源
    最近更新 更多