Rails - 回形针 - 多张照片上传不保存

2023-12-19

我正在尝试在 Rails 中创建一个创建产品页面。这包括添加多个图像和文本字段。我有一种产品模型和一种照片模型。我正在使用回形针宝石来上传照片。 但当我查看产品页面时,我没有看到任何图片。照片未保存到数据库中。

附:我使用 HAML。

应用程序/视图/产品/show.html.haml

  %b Name
  = @product.name
  %br

  %b Description
  = @product.description

  %br
  - @product.photos.each do |photo|
  = image_tag photo.image.url

应用程序/控制器/products_controller

class ProductsController < ApplicationController
  before_filter :require_login
    before_filter :current_user, only: [:create, :destory]

  def new 
    @product = Product.new
    @photo = Photo.new
    5.times { @product.photos.build }
  end

  def create

  @photo = current_user.photos.build(params[:photo])
  @product = current_user.products.build(params[:product])
    if @product.save
        render "show", :notice => "Sale created!"
    else
        render "new", :notice => "Somehting went wrong!"
    end
end

  def show
    @product = Product.find(params[:id]) 
  end

应用程序/模型/照片

class Photo < ActiveRecord::Base
  attr_accessible :product_id    
  belongs_to :product
  has_attached_file :image,
    :styles => {
      :thumb=> "100x100#",
      :small  => "300x300>",
      :large => "600x600>"
        }
end

应用程序/型号/产品

class Product < ActiveRecord::Base
  attr_accessible :description, :name, :price, :condition, :ship_method, :ship_price, :quantity, :photo
  has_many :photos, dependent: :destroy
  accepts_nested_attributes_for :photos
  belongs_to :user
end

用户模型

   class User < ActiveRecord::Base
      attr_accessible :email, :password, :password_confirmation, :name

      attr_accessor :password
      has_many :products, dependent: :destroy
      has_many :photos,:through=>:products

应用程序/产品/new.html.haml

= form_for @product, :html => { :multipart => true } do |f|
  %p
    = fields_for :photos do |f_i|
      =f_i.file_field :image 

首先你的形式是错误的,q用于注册照片使用fields_for,然后你使用fields_for f.object.photos或使用Photo.new做| g |,您的关系模型中的其他错误 has_attached_file 是 has_many 照片,has_attached_file 回形针适合在要使用的模型中使用,而不是在与其他模型的关系中使用。希望这会有所帮助,现在有一个带有几张照片的产品,我建议您使用宝石茧,我q根据您的情况进行,https://github.com/nathanvda/cocoon https://github.com/nathanvda/cocoon

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails - 回形针 - 多张照片上传不保存 的相关文章

随机推荐

  • 无法使用 SQL Server Management Studio 连接到 SQL Azure

    我已在 Azure 门户上创建了一个 SQL Azure 数据库 现在我想使用 SQL Server Management Studio 连接到它 我已经这样设置我的属性 Server Type Database Engine Server
  • 弹出窗口的箭头用于跟踪滚动视图中的对象

    每当触摸表格视图中的单元格时 我都会显示一个弹出窗口 箭头指向该单元格 并且始终指向左侧或右侧 而不是向上或向下 表视图设置为弹出窗口的passthroughView 以便用户可以在弹出窗口仍然打开时选择不同的单元格 从而为所选单元格生成一
  • 从 igraph 到 ggplot 对象

    我使用 ggraph 和 igraph 构建了树状图 library ggraph library igraph EL lt read csv EL2 csv sep header TRUE stringsAsFactors FALSE E
  • 从动态 json 数据更新力导向图上的链接

    我是 D3 的新手 正在研究力定向图 其中 json 数据是动态的 我能够在收到新数据后更改力图 但这会产生弹跳效应 创建我的力图的代码是 div class graph div
  • MySQL 与 InnoDB 的死锁问题

    我有一个中央数据库服务器和几个 工作 服务器 它们同时执行这样的查询 UPDATE job queue SET worker 108 166 81 112 attempts attempts 1 started 2014 01 14 10
  • PySimpleGui 右对齐框架中的按钮

    我正在构建一个简单的 GUIpysimplegui并想要右对齐框架内的按钮 我找到了有关如何使用文本而不是按钮执行此操作的详细信息 例如 我希望下面的按钮能够卡入框架的右侧 周围有凹槽 我要这个 看起来更像这样 但无需添加手动调整的空白文本
  • 如何检查鼠标是否位于控件上

    如何检查鼠标是否位于某一 HWND 上方 我尝试过使用 WM MOUSELEAVE 和 WM MOUSEMOVE 消息来跟踪 但是如果您单击按钮并将鼠标拖出按钮 则在释放鼠标之前它不会收到 WM MOUSELEAVE 这为时已晚 因为 当您
  • 如何通过 log4net 记录机器名称?

    我使用 Log4Net 和 AdoNetAppender 将消息从简单的系统托盘应用程序记录到 SQL Server 2005 数据库中 我想将计算机名称与日志消息一起记录 因为该应用程序将在多台计算机上运行 并且我需要知道消息源自哪一台计
  • asp.net MVC3 部分视图结果不更新 EditorFor 值

    我有一个简单的电子邮件捕获表单作为我的主页的一部分 但是当我返回部分视图时 表单编辑器的模型值没有更新 该模型 public class Contact Key public int Id get set Required public s
  • 在每个 PHP 回溯级别获取范围内的变量?

    有没有办法在回溯中查看每个堆栈帧中设置的变量 我可以通过组合来非常接近debug backtrace true 来获取对象 get object vars在每个对象上获取 this vars args每个回溯帧中的键 以及get defin
  • 为什么FocusNode需要在flutter中进行处置?

    我有点很困惑何时使用dispose扑腾中 有关于这方面的好的教程吗 在食谱中https flutter io docs cookbook forms focus https flutter io docs cookbook forms fo
  • 在 Android 中将视频流传输到网络

    我想制作一个可以将视频流传输到网络的 Android 应用程序 我知道如何在 Android 中录制视频 但不知道如何将其流式传输到网络 我不想将此视频存储到手机的 SD 卡上 但我希望将其存储在网络上 为此 我计划使用 ASP NET W
  • AWS ECS:运行任务失败原因:[“ATTRIBUTE”]

    当尝试在 EC2 实例中运行任务时 我收到了这条可怕的错误消息 Run tasks failed Reasons ATTRIBUTE 和其他许多人一样 https stackoverflow com questions 45173637 u
  • 如何防止在未插入行时触发插入触发器?

    我有一个表1 在此表上我创建了一个触发器 插入或更新或删除之后 现在 如果我执行一个不插入任何内容的插入 触发器仍然会被触发 insert into TABLE1 select from TABLE1 where 1 0 该查询不会插入任何
  • IObservable 按下的按键

    所以我可以尝试反应式扩展 我想创建一个用户按下的按键的 IObservable 我怎样才能做到这一点 这是一个 C 控制台应用程序 尝试这样做来获取可观察的读取键序列 IObservable
  • 如何使用 C# .NET CORE 2.0 将 FIX 登录消息发送到 GDAX

    我正在尝试建立一个到 fix gdax com 的 FIX 4 2 会话 文档 https docs gdax com fix api https docs gdax com fix api 使用 C 和 Net Core 2 0 当我尝试
  • .NET 内部编码

    NET 应用程序的内部编码是什么 例如字符串对象 我可以定义我的应用程序应使用什么编码吗 如果我将 net 字符串写入文件 字符串是什么编码 edit Dim test as String Das ist ein Test lt what
  • Amazon S3 预签名 url - 手动或一次性上传无效

    我正在使用 S3 接受用户到 S3 的直接上传 因此我将使用预签名的网址 上传成功后 AWS Lambda会确保上传的文件是图像 然后客户端会告诉我的服务器他已经完成上传 然后我的服务器将检查该文件是否存在于 S3 中 如果 Lambda
  • 为什么pygame中的文字显示2秒

    我显示的文本仅显示约 2 秒 我希望当我点击其他区域时它会显示 elif msg 0 7 YOU WIN and Message id 200 print You Win textSurface font render You Win Tr
  • Rails - 回形针 - 多张照片上传不保存

    我正在尝试在 Rails 中创建一个创建产品页面 这包括添加多个图像和文本字段 我有一种产品模型和一种照片模型 我正在使用回形针宝石来上传照片 但当我查看产品页面时 我没有看到任何图片 照片未保存到数据库中 附 我使用 HAML 应用程序