Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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 嵌套图像模型对象在编辑操作时不显示_Ruby On Rails_Forms_Model_Photo_Nested Attributes - Fatal编程技术网

Ruby on rails 嵌套图像模型对象在编辑操作时不显示

Ruby on rails 嵌套图像模型对象在编辑操作时不显示,ruby-on-rails,forms,model,photo,nested-attributes,Ruby On Rails,Forms,Model,Photo,Nested Attributes,我已经忽视这个问题有一段时间了,但我不能再忽视了。我的嵌套图像模型对象,product\u图像在我渲染产品的edit视图时不显示。因此,我的应用程序调用了一个错误,当我尝试渲染show视图时,该错误表示图像为零 为什么我的嵌套产品图像没有出现?我用的是回形针和s3 我需要嵌套的图像形式是可编辑的,一切工作时,一个新产品被创建,编辑是唯一的问题。“显示”操作期间的“无”异常仅与“编辑”操作故障有关 下面是我的代码: 模型## _窗体视图 “产品名称”%> “制造商代码”%> “警报,示例:保存

我已经忽视这个问题有一段时间了,但我不能再忽视了。我的嵌套图像模型对象,
product\u图像
在我渲染产品的
edit
视图时不显示。因此,我的应用程序调用了一个错误,当我尝试渲染
show
视图时,该错误表示图像为零

为什么我的嵌套产品图像没有出现?我用的是回形针和s3

我需要嵌套的图像形式是可编辑的,一切工作时,一个新产品被创建,编辑是唯一的问题。“显示”操作期间的“无”异常仅与“编辑”操作故障有关

下面是我的代码:

模型## _窗体视图

  • “产品名称”%>
  • “制造商代码”%>
  • “警报,示例:保存10%”%>
  • “基准价格”%>
  • “产品说明”,尺寸=>“30x10”%>
  • 物品可以征税
  • 项目可以是标准装运

  • 选择产品图片:
  • (第一个图像将是产品的主图像)
任何见解都值得赞赏

编辑 产品图片部分
我认为您需要这样称呼您的部分用户:

<%= render partial: 'product_image_fields', locals: {f: p} %>
你应该在屏幕上看到你的图像的路径。再看看HTML源代码,Rails应该添加带有图像记录id的隐藏字段


如果您没有问题,那么您需要使用其他内容来显示图像,而不是使用
文件\u字段
,尝试图像\u标记或任何您想要使用的内容

您是否尝试过使用Rails提供的奇妙的
接受嵌套属性
来处理嵌套属性

阅读更多

编辑 我认为最好给你举个例子,而不是

class Product < ActiveRecord::Base
  attr_accessible ..., :product_images_attributes # <======= Pay attention here. Mass Assignment attributes required
  accepts_nested_attributes_for :product_images
  ....
end
类产品属性可访问…,:product_images_attributes#在products_控制器上,修改编辑操作以包括product_图像,以便知道要更新哪些图像

def edit
  @product = Product.includes(:product_images).find(params[:id])
  # ...
end

如果在编辑和更新之前转到“显示”页面,它是否工作?product_image_部分字段是什么样子的?如果使用控制台查看刚通过表单创建的对象,它是否正确附加了图像?更新对象时关联会发生什么情况?请尝试在Rails中使用嵌套属性使用嵌套属性。关联在更新时变为零,它在创建时工作。当我查看编辑表单时,有一堆product_图像字段,但它们都说没有文件选择。你在使用CarrierWave吗?我尝试了你的解决方案,但没有成功。我在问题的末尾贴出了部分代码。没有错误,编辑时只有空的产品图片上传输入。如果我去掉文件字段,则我不能将此表单部分用于新建和编辑操作。我想显示缩略图,还可以选择上传更多。删除链接也不会销毁对象。我从未建议您删除
文件\u字段
!再次阅读,我建议一种方法来确认数据到达表单视图。一旦您确认了这一点,我建议您使用
图像标签
是否使用CarrierWave?如果是,则应使用
或类似的工具来显示图像。阅读Carrierwave gem文档
<fieldset>
        <%= f.file_field :photo %>
        <%= f.hidden_field :_destroy %>
        <%= link_to "remove", '#', class: "remove_fields" %>
</fieldset>
<%= render partial: 'product_image_fields', locals: {f: p} %>
<fieldset>
        <%= f.file_field :photo %>
        <%= f.hidden_field :_destroy %>
        <%= link_to "remove", '#', class: "remove_fields" %>
</fieldset>
<fieldset>
        <%= f.object.send :photo %>

        <%= f.file_field :photo %>
        <%= f.hidden_field :_destroy %>
        <%= link_to "remove", '#', class: "remove_fields" %>
</fieldset>
class Product < ActiveRecord::Base
  attr_accessible ..., :product_images_attributes # <======= Pay attention here. Mass Assignment attributes required
  accepts_nested_attributes_for :product_images
  ....
end
def edit
  @product = Product.includes(:product_images).find(params[:id])
  # ...
end