如何将jquery-ui添加到Ruby on Rails 3.1应用程序中?
我已经将//=require jquery-ui
到我的application.js文件中,这似乎给了我javascript,但我似乎无法将样式表包含在内。 如果我理解它,他们应该进入vendor/stylesheets
但我如何将它们包括在内?
也许使用jquery-ui-rails gem更容易(见公告 )。 它把所有东西打包起来,所以“只是工作”。
您可以使用Google CDN在应用的head部分添加css主题。 只需在%head部分下添加此application.html.haml(或转换为erb的相同内容)。
css主题
%link{:href => "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.8/themes/ui-lightness/jquery-ui.css", :rel => "stylesheet", :type => "text/css"}
如果你想让jquery-ui缩小。
%script{:src => "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.8/jquery-ui.min.js"}
如果在Gemfile中包含’jquery-rails’,那么jquery-ui将包含在application.js中:
// =需要jquery-ui.min
如果你在Console: Rails.application.config.assets.paths
运行,你将获得Rails将查看资产的所有路径。 以我的情况为例:
- /Users/aldo/Satio/Desarrollo/rails/subaquaclub/app/assets/images - /Users/aldo/Satio/Desarrollo/rails/subaquaclub/app/assets/javascripts - /Users/aldo/Satio/Desarrollo/rails/subaquaclub/app/assets/stylesheets - /Users/aldo/Satio/Desarrollo/rails/subaquaclub/vendor/assets/javascripts - /Users/aldo/Satio/Desarrollo/rails/subaquaclub/vendor/assets/stylesheets - /Users/aldo/.rvm/gems/ruby-1.9.2-p290@subaquaclub31/gems/jquery-rails-1.0.13/vendor/assets/javascripts
看到最后一行? 如果你在那里办理登机手续,你会发现jquery-ui所以你去了。
引用jquery-rails手册 :
为了使用jQuery UI的主题部分,您还需要提供自己的主题CSS。 有关更多信息,请参阅jqueryui.com。
所以,你必须自己包括或设计它们! 只需在页面标题中包含主题的.css
。 在Rails 3中,你将css放在public/stylesheets
,不知道Rails 3.1。
jquery-rails不再将jquery-ui作为其资产的一部分。 你应该使用gem 'jquery-ui-rails'
。
此外,要了解资产在rails中的位置,您可以执行以下操作:
paths = Rails.application.config.assets.paths for path in paths do puts "Found in: #{path}" if Dir.glob("#{path}/*").grep(/jquery-ui/).present? end
这样可以轻松找到资产。
记住//= require jquery.ui.all
需要在//= require_tree .
由于大多数Jquery UIfunction都无法工作,因此浪费了我很多时间。
在评论中,epochwolf指出,denysonique在这个问题上有答案。
Rails 3.1和jquery-ui资产
如果你在Gemfile上有jquery-rails,那就做:
//= require jquery-ui
要么
//= require jquery-ui.min
两者都会很好。 如果没有,请尝试更新jquery-rails gem
不要忘记css文件,在这里我跟着一些关于其他答案的文章: Ruby on Rails 3.1和jQuery UI图像并通过这种方式使它工作:
*= require jquery-ui/jquery-ui.css
这是文件的路径:
vendor/assets/stylesheets/jquery-ui/jquery-ui.css vendor/assets/images/jquery-ui/images/ (your theme images)