在Rails中,使用nested_form将项目添加到表行在生产环境中不起作用

时间:2019-03-24 13:02:56

标签: ruby-on-rails ruby

我正在使用simple_nested_form在此https://github.com/ryanb/nested_form/wiki/How-To:-Render-nested-fields-inside-a-table的指导下向表行添加项目。

它在开发环境中效果很好。但是,将项目部署到服务器后,单击“添加”按钮没有响应。

这是我的代码:

_form.html.erb

<%= simple_nested_form_for @rule, :wrapper => false do |f| %>
  <%#= f.error_notification %>
  <%= render 'shared/the_error_messages' %>

  <%= render 'basic_info', f: f %>

  <div>
    <%= f.button :submit %>
  </div>
<% end %>

_basic_info.html.erb

<table class="table">
  <thead>
  <tr>
    <th>age>=</th>
    <th>age<=</th>
  </tr>
  </thead>
  <tbody class='fields'>
  <%= f.fields_for :basic_infos, :wrapper => false do |f| %>
    <tr class='fields'>
      <td>
        <%= f.hidden_field :id %>
        <%= f.input :age_lower_bound, label: false, as: :integer%>
      </td>
      <td><%= f.input :age_upper_bound, label: false, as: :integer%></td>
      <td><%= f.link_to_remove 'Remove' %></td>
    </tr>
  <% end %>
  </tbody>
  <tr>
    <td><%= f.link_to_add 'Add basic info', :basic_infos, :container =>'tbody', :fields_element=>'tr'%></td>
  </tr>
</table>

application.js

//= require jquery
//= require rails-ujs
//= require jquery_ujs
//= require jquery-ui
//= require activestorage
//= require turbolinks
//= require bootstrap-sprockets
//= require jquery_nested_form
//= require_tree .

window.NestedFormEvents.prototype.insertFields = function(content, assoc, link) {
    var $tr = $(link).closest('tr');
    return $(content).insertBefore($tr);
}

我花了很多天尝试各种部署和检查Node.js安装的方法。 谁能帮我?谢谢

1 个答案:

答案 0 :(得分:0)

我删除了文件rails-ujs中的jquery-uiapplication.js。 现在看起来像这样:

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap-sprockets
//= require jquery_nested_form
//= require_tree .

现在它在我的服务器上运行良好。

但是,我仍然不知道它为什么起作用。有人可以向我解释吗?