我试图将嵌套的表单放入我的一个视图中.我已经安装了nested_form Gem并执行了安装步骤.我做的最后一件事是编辑我的app/view/layouts/application.html.erb文件以包含此行
<%= javascript_include_tag "nested_form" %>
Run Code Online (Sandbox Code Playgroud)
但是当我查看渲染页面时,javascript无法正常工作.我检查了页面源代码,发现nested_form javascript的呈现代码如下所示:
<script src="/assets/nested_form.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
所以看起来似乎在错误的地方.该.js文件位于public/javascripts中,而不是资产中.我做错了什么或者我是否需要在javascript_include_tag中指定其他内容?
从rails 3.1及其后开始,javascript_include_tag将仅查找资产管道中的javascripts.如果要将public/javascripts添加到资产管道中,只需将公共路径添加到您的资产管道即可
Rails.application.config.assets.paths
Run Code Online (Sandbox Code Playgroud)
初始化RoR应用程序时的数组,因为定义了资产管道所查看的路径.
所以没有你没有做错任何事情,你使用的宝石只是过时而且它是用于rails 3.0-.虽然我建议尝试将javascripts从公共文件夹移动到assets文件夹,看看它是否有效,因为这是将javascripts放入3.1应用程序的首选方法.
解决问题的另一种方法(尽管不推荐)是完全禁用资产管道,如果您不使用它.这是通过删除来完成的
config.assets.enabled = true
Run Code Online (Sandbox Code Playgroud)
在你的config/application.rb中
如果您想了解有关资产管道的更多信息,Railscasts上有一个视频 http://railscasts.com/episodes/279-understanding-the-asset-pipeline
| 归档时间: |
|
| 查看次数: |
2727 次 |
| 最近记录: |