Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 编辑使用Carrierwave的记录时,我得到一个';拇指图像是否已更改';错误,即使我没有更新任何图像_Ruby On Rails_Ruby On Rails 3_Carrierwave - Fatal编程技术网

Ruby on rails 编辑使用Carrierwave的记录时,我得到一个';拇指图像是否已更改';错误,即使我没有更新任何图像

Ruby on rails 编辑使用Carrierwave的记录时,我得到一个';拇指图像是否已更改';错误,即使我没有更新任何图像,ruby-on-rails,ruby-on-rails-3,carrierwave,Ruby On Rails,Ruby On Rails 3,Carrierwave,这是我在尝试更新我的供应商模型(例如所有者)上记录的非图像属性时遇到的错误: 当我尝试只更新一个记录的一个图像(而不是全部3个)时,我想我也会遇到类似的错误 是什么原因造成的?我该如何修复 谢谢 编辑1: Vendor#update控制器看起来像一个正常搭建的update操作: def update @vendor = Vendor.find(params[:id]) respond_to do |format| if @vendor.update_attrib

这是我在尝试更新我的
供应商
模型(例如
所有者
)上记录的非图像属性时遇到的错误:

当我尝试只更新一个记录的一个图像(而不是全部3个)时,我想我也会遇到类似的错误

是什么原因造成的?我该如何修复

谢谢

编辑1:

Vendor#update
控制器看起来像一个正常搭建的
update
操作:

  def update
    @vendor = Vendor.find(params[:id])

    respond_to do |format|
      if @vendor.update_attributes(params[:vendor])
        format.html { redirect_to @vendor, notice: 'Vendor was successfully updated.' }
        format.json { head :no_content }
      else
        format.html { render action: "edit" }
        format.json { render json: @vendor.errors, status: :unprocessable_entity }
      end
    end
  end
以下是生成此请求的参数:

Started PUT "/vendors/12" for 127.0.0.1 at 2013-01-06 16:51:28 -0500
Processing by VendorsController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"3bl5Q=", "vendor"=>{"name"=>"Die", "intro_text"=>"Toppa top jeans", "description"=>"The best jeans you can get your legs in."}, "commit"=>"Update Vendor", "id"=>"12"}
  Category Load (13.0ms)  SELECT "categories".* FROM "categories" LIMIT 6
  Vendor Load (0.1ms)  SELECT "vendors".* FROM "vendors" WHERE "vendors"."id" = ? LIMIT 1  [["id", "12"]]
   (0.1ms)  begin transaction
   (0.1ms)  rollback transaction
Completed 500 Internal Server Error in 51ms
在本例中,我正在更新的属性是
name
属性


另外,值得一提的是,这里有一个完整的。

您确定您的
vendors
表中有一个名为
thumb\u image
的列吗?因为它看起来确实像是试图在现有列上运行
…\u changed?
方法

您可以在更新记录的地方添加控制器的代码吗?最后,你能告诉我们当你出现错误时参数是什么样子的吗?@pjam-刚刚添加了这两个参数。期待您的想法:)您确定您的供应商表中有一列名为
thumb\u image
?因为看起来ActiveModel::Dirty()确实试图在现有的columnHrmm上运行
。\u changed?
方法@pjam…现在我想起来了,你可能是对的。我正在查看我的
模式.rb
但没有看到它。是的@pjam…这似乎就是问题所在。如果你加上这个作为回答,我会接受的。多谢!!完美的我以前更新过这个模型,但没有删除对我的
thumb\u image
列的
mount\u uploader
调用。所以这让一切都搞糟了。不管它值多少钱,你愿意尝试一下这个问题吗-
  def update
    @vendor = Vendor.find(params[:id])

    respond_to do |format|
      if @vendor.update_attributes(params[:vendor])
        format.html { redirect_to @vendor, notice: 'Vendor was successfully updated.' }
        format.json { head :no_content }
      else
        format.html { render action: "edit" }
        format.json { render json: @vendor.errors, status: :unprocessable_entity }
      end
    end
  end
Started PUT "/vendors/12" for 127.0.0.1 at 2013-01-06 16:51:28 -0500
Processing by VendorsController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"3bl5Q=", "vendor"=>{"name"=>"Die", "intro_text"=>"Toppa top jeans", "description"=>"The best jeans you can get your legs in."}, "commit"=>"Update Vendor", "id"=>"12"}
  Category Load (13.0ms)  SELECT "categories".* FROM "categories" LIMIT 6
  Vendor Load (0.1ms)  SELECT "vendors".* FROM "vendors" WHERE "vendors"."id" = ? LIMIT 1  [["id", "12"]]
   (0.1ms)  begin transaction
   (0.1ms)  rollback transaction
Completed 500 Internal Server Error in 51ms