簡體   English   中英

使用Carrierwave和Formtastic上傳Rails 3文件

[英]Rails 3 file upload with Carrierwave and Formtastic

我有一個包含許多照片的產品。 這種關系是這樣的:

product.rb

class Product < ActiveRecord::Base
  has_many :photos, :dependent => :destroy
  attr_accessible :translations_attributes, :active, :category_id, :photos
  accepts_nested_attributes_for :translations, :photos

photo.rb

class Photo < ActiveRecord::Base
  attr_accessible :photo, :product_id
  belongs_to :attachable
  mount_uploader :photo, PhotoUploader

並且表單如下所示:

form(:html => { :multipart => true }) do |f|
f.inputs "Details" do
  f.input :active
  f.input :category, :include_blank => false
end

f.inputs "Photos" do
    f.input :photos, :as => :file
end

f.buttons

結束

問題是我在創建/更新附帶文件的產品時遇到此錯誤:

undefined method `each' for #<ActionDispatch::Http::UploadedFile:0x007f93c8549828>

我在這里發現了一個同樣錯誤的問題 ,但即使嘗試他們的解決方案仍然有同樣的問題。

我正在使用Friendly_Id,ActiveAdmin,Globalize3,也許它可能與它們有一些關系,這是我與Rails的第一個項目,現在我不知道可能是什么...

您的問題是您在模型中將photos聲明為has_many關聯,並在視圖中將其聲明為單個文件輸入。 很多或者一個,請你選擇:)

您可能要做的是將照片作為產品表單中的嵌套模型 - 如下所示:

semantic_form_for @product do |f|
  f.semantic_fields_for :photos do |ff|
    ff.input :photo, as: :file

循環遍歷產品中的每張照片,並為每個照片顯示文件輸入字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM