【问题标题】:Rails render partial dynamicallyRails 动态渲染局部
【发布时间】:2018-04-17 21:10:09
【问题描述】:

我对此有点疯狂,我有一个 Event has_many Attendants 但我无法创建在 Event 表单中动态显示,我有一个 partial 和 Attendant 的 form,这很有效:

<%= form.fields_for :attendants do |form_attendant| %>
  <%= render 'form_attendant', form_attendant: form_attendant %>
<% end %>

对于 1 名服务员,如果我复制粘贴,它适用于 2 名服务员,依此类推..

我想要一个按钮来为我做这件事,我已经阅读并尝试了一个 loooot。

选项 1: 我已经尝试在 js 中附加它:

$("#attendants").append "<%= form.fie ... %>"

但是它只是打印文本并且不会渲染部分,我也尝试过 escape_javascript 没有运气。

我现在正在尝试:

<%= link_to "Agregar", new_attendant_path, remote: true %>

我有这些在attachants/new.js.erb

$('#attendants').append("<%= escape_javascript ( render partial: 'form_attendants' ) %>");

这实际上可以工作并渲染部分,但现在我不知道如何发送本地 事件表单 所以我可以制作 &lt;%= form.fields_for :attendants do |form_attendant| %&gt; ...里面的部分,

任何帮助将不胜感激,我几乎要哭了

【问题讨论】:

    标签: javascript jquery ruby-on-rails ajax forms


    【解决方案1】:

    试试nested_form_fieldsgem

    = form_for @user do |f|
      = f.nested_fields_for :videos do |ff|
        = ff.remove_nested_fields_link
        = ff.text_field :video_title
        ..
      = f.add_nested_fields_link :videos
    

    您可以更改remove_nested_fields_link和add_nested_fields_link的链接文本,添加类/属性等...

    您还可以自定义添加/删除功能,通过覆盖

    nested_form_fields.js.coffee 到您的 Rails JavaScript 资产中

    更多信息

    https://github.com/ncri/nested_form_fields

    <%= form_for @users do |f| %>
     <%= f.fields_for :attendants do |form_attendant| %>
       <%= render 'form_attendant', form_attendant: form_attendant %>
     <% end %>
     <%= f.add_nested_fields_link :attendants %>
    <% end %>
    

    部分 _form_attendant.html.erb

    <%= form_attendant.remove_nested_fields_link %>
    <%= form_attendant.text_field :attd_date %>
    <%= form_attendant.text_field :attd_time %>
    

    【讨论】:

      【解决方案2】:

      尝试使用cocoon gem 它会做所有这些事情

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-16
        • 2016-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多