Rails 4 - 带有dependent-fields-rails的条件JS

时间:2016-04-14 05:40:22

标签: javascript jquery ruby-on-rails underscore.js

我正试图弄清楚如何在我的Rails 4应用程序中使用dependent-fields-rails gem。

我迷路了。

我在我的供应商javascripts文件夹中包含了underscore.js并更新了我的application.js以包含(位于底部,正上方需要树):

//= require underscore
//= require dependent-fields


$(document).ready(function() {
    DependentFields.bind()
});

以我简单的形式,我有:

<%= f.input :has_milestones, as: :boolean, boolean_style: :inline, :label => 'Any decision points?', id: 'check_project_milestones' %>

<%= content_tag :div, class: 'js-dependent-fields', data: {'checkbox-id': 'check_project_milestones', 'checkbox-value': 'true' } do %>        

  <div class="intpol2">
    Milestones
  </div>

  <%= f.simple_fields_for :milestones do |f| %>
    <%= render 'milestones/milestone_fields', f: f %>
  <% end %>
<% end %>

但是,当我重新启动服务器并呈现表单时,会显示第一个具有div id的问题(未选中复选框),并且内容标记内的内容也会显示。我希望它被隐藏,直到选中复选框。

我在driftingruby.com上找到了一个教程,展示了如何设置它。我唯一可以猜到的是,可能需要使用turbo链接才能完成这项工作?我禁用它因为我使用olark。

当我检查控制台是否有错误时,我可以看到这个看起来很相关:

[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (underscore-min.map, line 0)

我还应该补充一点,我在回答我之前关于这个问题的问题时尝试了所有建议,但未能找到解决方案:Rails 4 - JS for dependent fields with simple form

谁能看到我做错了什么?

2 个答案:

答案 0 :(得分:1)

您遇到的是源映射。这使您可以在使用缩小的JS文件时使用浏览器的开发人员工具中的可读代码进行调试。

Underscore的缩小版本在文件末尾有这一行:

//# sourceMappingURL=underscore-min.map

您的浏览器开发人员工具会在遇到此行时尝试下载underscore-min.map

如果您想摆脱错误,请:

  1. underscore-min.js
  2. 中删除该行
  3. 将underscore-min.map和underscore.js添加到您的项目中。

答案 1 :(得分:0)

您是否还在供应商处添加了最小地图?

源地图用于在浏览器上进行javascript调试

你也可以在下划线js上下载:写在哪里

  

源地图

或:http://underscorejs.org/underscore-min.map

另请参阅:Rails Assets - 404 with .map extension