具有图像上载的多模型表单

时间:2009-12-30 03:19:02

标签: ruby-on-rails paperclip nested-forms

我正在尝试创建一个有很多答案的投票对象。每个答案都可以附加图像。 如何创建一个表单,允许我输入问题并添加可变数量的答案(每个答案都带有附加图像)。我还希望允许预览上传的图像。

到目前为止,我的想法是为每个图像添加一个子表单,自动上传到每个添加的问题的预览处理程序。

我的另一种方法是在会话中创建问题对象,并向其添加答案对象,然后同时保存所有对象。我不太确定如何在rails中实现这一点。 我正在使用回形针上传图片。

我是一个铁杆新手,所以任何建议都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

我强烈建议你阅读这两篇关于嵌套属性和嵌套模型的文章:

如果您想使用单个表单创建包含许多答案的投票,则可以采用此方法。

您可以先询问民意调查会有多少答案,然后在fields_for来电时多次重复。

但是,更好的方法是使用“添加”和“删除”链接,以便您可以修改内联答案的数量。我会使用AJAX执行此操作 - 因此您可能有一个link_to_remote用于“添加”链接,该链接调用的控制器方法可以执行以下操作:

render :update do |page|
  page.insert_html :bottom, 'answers-list', :partial => 'answer'
end

当然,对于“删除”链接,您使用page.remove删除表单的相关部分。

无论如何,这应该让你开始。

答案 1 :(得分:1)

如何将民意调查的答案与图片上传部分分开?

通过这种方式,您可以构建一个包含多个答案的主表单,然后对于每个创建的答案,您将拥有一个表单和上传字段,这样您就不必处理多个上传,而且更容易。

您可以轻松隐藏(style =“display:none”)上传表单,并使用“上传图片”等链接显示它们(onclick =“$('#link_id')。show()”)

我建议您不要使用会话来存储这些信息,因为浏览器的前置(按钮)会搞乱。