accepted_nested_attributes_for具有复杂的关联

时间:2012-07-02 14:47:23

标签: ruby-on-rails

我在我的一个Rails应用程序中使用accepts_nested_attributes_for。我有三个模型:专辑has_many:照片和每个:照片has_and_belongs_to_many:标签。用户可以使用paperclip和jquery.multifile.js在相册中添加更多照片。每件事情都运转良好,但主要问题是哈希没有正确创建。

album => {:name => "", :body => "", :photos_attributes => {"tags_attributes" => {:name => "abc"}, "photo" => {"file" => "tempfile"}}}

但我需要。

album => {:name => "", :body => "", :photos_attributes => "photo" => {"file" => "tempfile", "tags_attributes" => {:name => "abc"}}}}

我的观点是:请考虑图库=>专辑和附件=>照片

<%= form_for(@gallery, :html => {:multipart => true}) do |f| %>
    <div id = "gallery_name_formField">
        <%= f.label "Gallery Name:" %><br />
        <%= f.text_field :name, :name => "gallery[name]" %><br />
    </div>
    <div id = "gallery_body_formField">
        <%= f.label "Gallery Description:" %><br />
        <%= f.text_area :body, :name => "gallery[body]" %><br />
    </div>
    <%= f.fields_for :attachments do |af| %>
        <div id = "gallery_file_formField">
            <%= af.label "Select The Attachment:" %><br />
            <%= af.file_field(:attachment, :name => "gallery[attachments_attributes][][attachment]")%>
        </div>
        <div id="tags">
            <%= af.fields_for :tags do |tf| %>
                <%= tf.label :name, "Tag:" %><br />
                <%= tf.text_field :name, :id => "mySingleField_0", :name => "gallery[attachments_attributes][][tags_attributes][][name]" %>
            <% end %>
        </div>
    <% end %>

    <div class="attachment_submit_formField">
        <%= f.submit(:id => "create_gallery") %>
    </div>
<% end %>

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用嵌套表单gem? Give it a try

拥有多个嵌套表单的非常简单的方法。

它对我有用。