gpt4 book ai didi

ruby-on-rails - Rails - 回形针 - 多图像创建无方法错误

转载 作者:太空宇宙 更新时间:2023-11-03 17:24:33 24 4
gpt4 key购买 nike

我是 Ruby on Rails 的新手,我一直在尝试创建一个示例苹果,但我一直在这一部分上停留几周!我一直在向 stackoverflow 发送垃圾邮件,但我已经没有运气:(。我正在尝试创建一个允许多张图片上传的产品页面。所以我有一个用户模型、一个产品模型和一个照片模型。当我提交填有照片和其他输入的表单时,出现此错误。

NoMethodError in ProductsController#create

undefined method `photo' for #<Product:0x9078f74>

新产品页面

= form_for @product, :html => {:multipart => true} do |f|
%p
= f.label :description
= f.text_field :description

= fields_for @photo, :html => {:multipart => true} do |fp|
= fp.file_field :image

%p.button
= f.submit

产品控制者

  def new
@product = Product.new
@photo = Photo.new
end

def create
@photo = current_user.photos.build(params[:photo])
@product = current_user.products.build(params[:product])
end

产品型号

attr_accessible :description, :name, :photo, :image

belongs_to :user
has_many :photos, dependent: :destroy
accepts_nested_attributes_for :photos

validates :user_id, presence: true
validates :description, presence: true
validates :photo, presence: true
end

照片模型

  attr_accessible :image
belongs_to :product
validates_attachment :image, presence: true

用户模型

attr_accessible :email, :name, :password, :password_confirmation, :image, :photo

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

end

表格

用户

  • 编号
  • 姓名
  • 电子邮件
  • 密码

产品

  • 编号
  • 姓名
  • 描述
  • 用户编号

照片

  • 编号
  • 图片文件名
  • 图片内容类型
  • 图片文件大小
  • image_updated_at
  • 产品编号

最佳答案

产品 Controller 更改为

def new
@product = Product.new
@product.photos.build
end

def create
@product = Product.new(params[:product])
end

由于您要求上传多张图片,请尝试将其添加到您的 View 中

   <%= f.fields_for :photos do |img| %>
<%= render "img_fields", :f => img %>
<% end %>
<div class="add_image"><%= link_to_add_fields "Add Image", f, :photos %></div>

并创建一个文件 _img_fields.html.erb 到 View 中并添加

<div class="entry_field">
<label>Image :</label>
<%= f.file_field :image %>
<%= link_to_remove_fields "remove", f %></div>

然后将以下行添加到您的 application.js 文件

function remove_fields(link) {
$(link).prev("input[type=hidden]").val("1");
$(link).closest(".entry_field").hide();
}

function add_fields(link, association, content) {
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g");
$(link).parent().before(content.replace(regexp, new_id));
}

在您的产品模型中

  has_many :photos
accepts_nested_attributes_for :photos
attr_accessible :description, :name, :photos_attributes

关于ruby-on-rails - Rails - 回形针 - 多图像创建无方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16826651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com