【问题标题】:Rails simple-form with multiple instances of the same object具有同一对象的多个实例的 Rails 简单形式
【发布时间】:2015-06-20 08:36:28
【问题描述】:

我正在尝试使用使用嵌套资源的简单表单创建一个 Rails 表单。但是,我希望能够提交关联资源的多个实例。下面的示例可能会更好地解释它。

<div class="tab-pane active" id="reminder">
    <%= simple_form_for @collection, html: {multipart: true}, url: collection_index_path do |m| %>

        <%= render partial: "collection/tabs/reminder", locals: { :m => m } %>
    </div>

-内部部分

<% 9.times do |j|%>
    <div class="tab-pane" id="<%= j %>">
        <%= m.simple_fields_for :reminder do |p| %>
            <%= p.input :heading %>
            <%= p.input :message %>
        <% end %>           
    </div>

有一个选项卡式窗格,用户可以在其中单击 9 个选项卡以设置最多 9 个提醒,所有提醒都应与一个集合相关联(集合模型接受用于提醒的嵌套属性)。但是,按照我现在的设置方式,控制器仅获取参数中最后一个提醒中设置的内容。无论如何,想法将不胜感激。

【问题讨论】:

    标签: html ruby-on-rails ruby forms simple-form


    【解决方案1】:

    在提交给控制器之前,必须有一些方法来区分选项卡。我认为答案可能是here。 即它看起来像这样:

    <% 9.times do |j|%>
        <div class="tab-pane" id="<%= j %>">
            <%= m.simple_fields_for :reminders do |p| %>
               <%= p.input :heading %>
               <%= p.input :message %>
            <% end %>
        </div>
    <% end %>
    

    【讨论】:

    • 嗯,这仍然给了我一个提醒哈希,它只有最后一个输入作为参数。 "reminder"=>{"heading"=>"最后一组提醒", "message"=>"9"}},
    • 请参阅有关构建复杂表单的文档here。我认为您应该将accepts_nested_attributes_for :reminders 添加到提醒的父模型中。
    猜你喜欢
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多