Ruby on rails 3 有没有一种方法,使用回形针,在创建对象后上传图像并将其附加到对象上?

Ruby on rails 3 有没有一种方法,使用回形针,在创建对象后上传图像并将其附加到对象上?,ruby-on-rails-3,paperclip,Ruby On Rails 3,Paperclip,我一直在阅读的关于使用回形针的教程都包括这样的内容 <% form_for @product, :html => { :multipart => true } do |form| %> <ol class="formList"> <!-- Other fields go here... --> <li> <%= form.label :photo, "Photo" %> <%

我一直在阅读的关于使用回形针的教程都包括这样的内容

<% form_for @product, :html => { :multipart => true } do |form| %>
  <ol class="formList">
    <!-- Other fields go here... -->
    <li>
      <%= form.label :photo, "Photo" %>
      <%= form.file_field :photo %>
    <li>
      <%= form.submit "Submit" %>
    </li>
  </ol>
<% end %>
{:multipart=>true}do| form |%>

  • 在我看来,您需要在单击“提交”之前上传照片。在我的网站上,我希望用户能够创建一个产品,然后如果他们想添加照片,请单击产品视图中的上传照片按钮。然后上传的照片将添加到产品中。这可以用回形针或其他东西吗?或者我需要一个单独的照片/图像模型并通过该模型提交吗?

    好吧,即使只是向产品添加照片,您仍然在执行产品模型的更新。因此,它应该是产品模型的正常形式,就像您发布的一样,但没有其他字段。只需为添加照片的过程创建一个不同的表单视图


    您可以将参数?photo=1传递给products资源的编辑操作,以便呈现正确的视图,并可能使该编辑操作类似于ajax,因此它看起来更像是动态的。但是,模型的更新操作将无法通过ajax完成,因为您正在上载图像。

    我理解您的第一段,而且这似乎是正确的答案。您能否澄清为什么将?photo=1传递到产品资源的编辑操作中(我假设这是产品控制器)?另外,如果我在产品控制器中没有编辑操作,这会是一个问题吗?