Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails3中的jquery/javascript_Javascript_Ruby On Rails - Fatal编程技术网

Rails3中的jquery/javascript

Rails3中的jquery/javascript,javascript,ruby-on-rails,Javascript,Ruby On Rails,我的印象是,您可以在Rails 3的视图模板中添加javascript。例如,如果我在views/public/home.html.erb <div id="block">click</div> Javascript不应添加为视图文件(bla.js.erb)。它们必须放在assets/javascripts中,或者至少放在lib或vendor目录中 如果尚未使用require_tree,则还必须在application.js文件中要求它们 这样,您就不需要在视图中以任何

我的印象是,您可以在Rails 3的视图模板中添加javascript。例如,如果我在
views/public/home.html.erb

<div id="block">click</div>

Javascript不应添加为视图文件(bla.js.erb)。它们必须放在assets/javascripts中,或者至少放在lib或vendor目录中

如果尚未使用require_tree,则还必须在application.js文件中要求它们

这样,您就不需要在视图中以任何方式引用javascript(application.js将为您提供它)。否则,您需要指定一个布局来在块中插入javascript文件,因为视图是在标记之后呈现的

有很多理由不直接在html中使用javascript(除了明显的测试),请阅读以了解更多信息

当您创建一个具有与html.erb不同扩展名的视图时,仅当您的url指定具有该扩展名的格式时才会使用该扩展名,例如mywebsite/users.json最终将返回index.json.erb


对于AJAX您希望返回一个JSON对象,而不是javascript,这绝对不是正确的方法。请记住,您正在使用一个框架,您应该遵循它的指导原则。如果你想使用它的rails,使用它会很困难。

Javascript不应该作为视图文件(bla.js.erb)添加。它们必须放在assets/javascripts中,或者至少放在lib或vendor目录中

如果尚未使用require_tree,则还必须在application.js文件中要求它们

这样,您就不需要在视图中以任何方式引用javascript(application.js将为您提供它)。否则,您需要指定一个布局来在块中插入javascript文件,因为视图是在标记之后呈现的

有很多理由不直接在html中使用javascript(除了明显的测试),请阅读以了解更多信息

当您创建一个具有与html.erb不同扩展名的视图时,仅当您的url指定具有该扩展名的格式时才会使用该扩展名,例如mywebsite/users.json最终将返回index.json.erb


对于AJAX您希望返回一个JSON对象,而不是javascript,这绝对不是正确的方法。请记住,您正在使用一个框架,您应该遵循它的指导原则。如果你想生活在它的轨道上,使用它将很困难。

嗯。不,这样不行。根据响应类型,只会呈现视图/public/home.*中的一个。

嗯。不,这样不行。根据响应类型,只会呈现视图/public/home.*中的一个。

您可以使用javascript\u include\u标记

如果在public/javascript中有js文件source1.js和source2.js,那么可以使用

javascript_include_tag 'source1', 'source2'

您可以使用javascript\u include\u标记

如果在public/javascript中有js文件source1.js和source2.js,那么可以使用

javascript_include_tag 'source1', 'source2'

但同时,要让Ajax在不刷新页面的情况下工作,javascript不一定要在视图中吗?javascript是通过资产包含的,或者作为标签呈现在视图中。。。ajax调用链随后出现在第二个请求中。ajax方法调用服务器,服务器根据调用类型做出相应的响应-ajax调用可以使用js.erb模板、json或xml进行响应…但同时,为了让ajax在不刷新页面的情况下工作,javascript不一定要在视图中吗?javascript通过资产包含,或者作为正在呈现的视图中的标记包含。。。ajax调用链随后出现在第二个请求中。ajax方法调用服务器,服务器会根据调用类型做出相应的响应——ajax调用可能会使用js.erb模板、json或xml进行响应……好的,谢谢。事实上,我刚刚检查了我正在阅读的一本书,他们在public/views/tags中有一个名为remove.js.erb的文件,在tags控制器中有一个名为“remove”的函数。他们这样做显然是为了让ajax在不刷新页面的情况下更改演示文稿……将其置于public/views/tags中是不同的,这不是一个视图,而是一个可以放置始终可见内容的地方。如果您真的想用ajax调用作为视图的javascript文件,请记住,如果视图是myview.js.erb,您应该在链接中附加.js。例如:mywebsite/users.jso.k.,谢谢您的解释。非常感谢您能给予的任何帮助。干杯。没问题,我也在学习rails,还做了一些格式方面的工作,所以我对这部分理解得很好。如果您需要任何其他帮助,请询问;)o、 k,谢谢。事实上,我刚刚检查了我正在阅读的一本书,他们在public/views/tags中有一个名为remove.js.erb的文件,在tags控制器中有一个名为“remove”的函数。他们这样做显然是为了让ajax在不刷新页面的情况下更改演示文稿……将其置于public/views/tags中是不同的,这不是一个视图,而是一个可以放置始终可见内容的地方。如果您真的想用ajax调用作为视图的javascript文件,请记住,如果视图是myview.js.erb,您应该在链接中附加.js。例如:mywebsite/users.jso.k.,谢谢您的解释。非常感谢您能给予的任何帮助。干杯。没问题,我也在学习rails,还做了一些格式方面的工作,所以我对这部分理解得很好。如果您需要任何其他帮助,请询问;)