モデルの複数のアップロードを取得するために Carrierware と nested_form を実装しようとしていますが、問題が発生しています。
私のモデル:
class Idea < ActiveRecord::Base
attr_accessible :suggested_files_by_owner_attributes
has_many :suggested_files_by_owner, :class_name => 'Attachment', :as => :attachable
has_many :suggested_files, :class_name => 'Attachment', :as => :attachable
accepts_nested_attributes_for :suggested_files_by_owner
end
私のモデル:
class Attachment < ActiveRecord::Base
attr_accessible :title, :file
# belongs_to :comment
belongs_to :attachable, :polymorphic => true
mount_uploader :file, FileUploader
end
私のスキーマ(移行しました):
create_table "attachments", :force => true do |t|
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "title"
t.integer "attachable_id"
t.string "attachable_type"
移行しました:
class AddFileToIdeas < ActiveRecord::Migration
def change
add_column :ideas, :file, :string
end
end
私の見解:
= nested_form_for @idea, :url => {:action => "update", :controller=>"ideas"}, :html=>{:multipart => true} do |f|
=f.text_field :title, value: @idea.title
= f.text_area :description, :size => '30x7', :id => 'description'
%br
= f.label :privacy, "Make Private"
= f.check_box :is_private
%p
= f.fields_for :suggested_files_by_owner do |a_form|
= a_form.file_field :file
= a_form.link_to_remove "Remove"
= f.link_to_add "Add Attachment", :suggested_files_by_owner
= f.submit 'Save and Post'
送信を押すとエラーが発生します:
undefined method `file_will_change!'
また、ビューで [添付ファイルを追加] をクリックすると、アップローダー ボックスが 1 つではなく 2 つ表示されます。誰かが私の問題を理解するのを手伝ってくれますか?
更新 私の古いエラー:
uninitialized constant Idea::SuggestedFilesByOwner
:class_name => 'Attachment'
関連行に追加する必要がありました。上記を参照