我正在使用:
Linux Ubuntu 16.04
ruby 2.4.0p0;
rails 5.1.1
我是rails的前身,我曾在lynda.com上关注Ruby on Rails 4 Essential Training以便学习。我现在卡在加载js资产任务。
我创建了包含js函数的“app / assets / javascripts / demo.js”文件:
function jsRoar(name) {
alert('I am ' + name + '. Hear me roar!');
}
然后我在我的清单文件“app / assets / javascripts / public.js”中加载了这个文件。
//= require jquery
//= require jquery_ujs
//= require demo
之后我在“app / views / layouts / application.html.erb”的布局中添加了js的外部包含:
<%= javascript_include_tag "public" %>
在我的控制器中,我在“app / controllers / demo_controller.rb”中键入了我的布局
layout 'application'
最后我通过在demo / index.html.erb中键入这些js代码来调用我的函数:
<%= link_to('Roar', '#', :onclick => "jsRoar('Yassser');return true;") %>
<%= javascript_tag("jsRoar('Rails');")%>
之后我在我的chrome控制台中获得了“未定义的功能”并且警报没有出现。我已经在同一个html.erb中定义了该函数,它可以工作,所以这不是我认为的javascript问题。 我还必须提一下,首先当我运行我的服务器时,我已经获得了资产编译的问题,所以我通过在“config / initializers / assets.rb”中添加这一行来修复:
Rails.application.config.assets.precompile += %w( public.js)
我可以获得更多详情。 请帮忙。
答案 0 :(得分:2)
删除&#34; demo.coffee&#34;我的问题已解决。文件。 我发现我的问题来自于我有两个同名文件(但扩展名不同)&#34; demo.js&#34;和&#34; demo.coffee&#34;。由于Rails资产助手同样处理coffescript和js文件,因此这是不明确的。 所以我删除了&#34; demo.coffee&#34;我所有的问题都解决了。 谢谢大家。 @max的最佳thnx及其在this post
中的回复答案 1 :(得分:0)
我想这个:
<%= javascript_tag("jsRoar('Rails');")%>
应该是:
<%= javascript_include_tag("demo") %>
答案 2 :(得分:0)
查看此代码是否适用于您的视图:
box-sizing:border-box