我想要的:一个我可以上传文件并将其分配给对象(例如人)的站点。对于上传,我使用的是carrierwave。我想要两个独立的模型:“人”和“附件”。每个人只有一个执着。在我看来,我想将上传设置为嵌套表单,使用“field_for”。
我的代码:
#app/models/person.rb
has_one :attachment
accepts_nested_attributes_for :attachment
attr_accessible :name, :attachment_attributes
#app/models/attachment.rb
attr_accessible :description, :file
belongs_to :person
mount_uploader :file, AttachmentUploader
#app/controllers/person_controller.rb
def new
@person = Person.new
@person.build_attachment
end
#app/views/person/new.html.haml
= form_for @person, :html => {:multipart => true} do |f|
= f.fields_for :attachment do |attachment_form|
attachment_form.file_field :file
= f.submit
我的问题:当我尝试打开 new.html 时出现此错误: 未知属性:person_id
我不知道为什么会发生此错误。有人出主意吗?
(我正在使用带有 ruby 1.8.7 的 rails 3.2.6)