【问题标题】:rails carrierwave edit/update formrails carrierwave 编辑/更新表格
【发布时间】:2020-04-06 03:22:14
【问题描述】:

在我的 Rails 项目中,我使用 Carrierwave 通过雾将图像上传到 S3。到目前为止,我的 CRUD 频谱的创建读取和删除部分都在工作。

我的问题是编辑/更新部分。我使用相同的_form.html.erb 来编辑我用于创建记录的内容。当我单击编辑链接时,表单会将我的所有数据加载到表单字段中以进行编辑,但图像除外。表单域是空白的,好像没有与记录关联的图像。

如何更新已保存到 S3 的图像?

Models/listing.rb

class Listing < ActiveRecord::Base
  attr_accessible :body, :price, :title, :image

  mount_uploader :image, ListingUploader
end

Controllers/listings_controller.rb(编辑/更新部分)

def edit
    @listing = Listing.find(params[:id])
end

def update
    @listing = Listing.find(params[:id])
    if @listing.update_attributes(params [:listing])
        redirect_to :action => 'show', :id => @listing
    else
        render :action => 'edit'
    end
end

_form.html.erb

<%= form_for @listing, :html => { :multipart => true } do |l| %>
<p>
    <%= l.label :title %>
    <%= l.text_field :title %>
</p>

<p>
    <%= l.label :price %>
    <%= l.text_field :price %>
</p>

<p>
    <label>Upload a Picture</label>
    <%= l.file_field :image %>
    <%= l.hidden_field :image_cache %>
</p>
<div class="image-pre">
    <%= image_tag(@listing.image_url(:thumb)) if @listing.image? %>
</div>

<p>
    <%= l.label :body %>
    <%= l.text_area :body, :class => "tinymce" %>
    <%= tinymce %>
</p>

<%= l.submit %>
<% end %>

【问题讨论】:

  • 你有什么解决办法吗??我面临同样的问题

标签: ruby-on-rails carrierwave


【解决方案1】:

在您的 listings_controller.rb 中,尝试类似:

def edit
    @listing = Listing.find(params[:id])
    @listing.image.cache!
end

我自己还没有测试过,但我认为它可能会起作用,因为 image_cache 字段用于正常规避这个问题。

【讨论】:

    【解决方案2】:

    前段时间我将我的应用升级到 Rails 6,然后开始遇到这个问题。

    tldr;对于 Rails 5.0 及更高版本,您需要 2.1.0 或更高版本的carrierwave gem。

    我使用bundle outdated --strict 来查看是否可以升级载波。检查 Gemfile 以查看请求的版本是否设置正确。还要检查 Gemfile.lock 以查看是否有其他 gem 阻止它;您还需要升级它们。然后我使用bundle update --strict 进行实际升级。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-29
      • 2013-05-16
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多