如何使用Rails 4 Pipeline的Galleria插件

我最近在使用Rails 4 Pipeline制作Galleria插件时遇到了麻烦,我花了一些时间来弄清楚如何使它工作,所以我想分享解决方案以防有人遇到类似的问题。 1)下载插件后,将galleria-1.3.3.js (它是我编写当天的当前版本)和galleria.classic.js (或其他样式js文件)发送到vendor/assets/javascripts 2)将galleria.classic.css (或其他主题样式表)放到vendor/assets/stylesheets 3)将//= require galleria-1.3.3和//= require galleria.classic到application.js文件中,并将*= require galleria.classic到application.css文件中 4)资产管道为图像添加了指纹,这使得很难通过常规的CSS访问它们,所以需要在你的galleria样式表中添加’scss’,比如这个galleria.classic.css.scss和更改url(classic-map.png)到asset_url(“classic-map.png”); 与第二张图片相同。 5)打开galleria.classic.js文件并在那里找到css:”galleria.classic.css”或类似的东西,并将其更改为css: false 6)现在你只需要添加Galleria.run(‘#galleria’); 或某些js文件中的其他元素不同的东西,这应该工作:) PS我是Rails中的菜鸟,可能会犯一些愚蠢的错误,但我希望这对任何人都有帮助:)

为什么Array.reverse_each比Array.reverse.each更快

我几乎不使用reverse_each方法,而是在需要向后遍历数组时调用reverse.each 。 所以我只做了一些基准测试,显然reverse_each比reverse.each快得多。 这是因为在使用reverse.each时,在迭代数组之前有一个与创建反向数组相关的时间元素吗? 然而,在我的示例(下面)中,1000万次迭代TIME(reverse) + TIME(each) – TIME(reverse.each) ~ 1.2 seconds对于大小为4的数组。并且这个时间差或多或少保持稳定,而不管大小如何数组。 我已经测试了多达100个元素。 这一秒差异的原因是什么? require ‘benchmark’ number = 10000000 arr = (1..4).to_a Benchmark.bm(13) do |x| x.report(“reverse.each”) { number.times { arr.reverse.each {|x| x} } } x.report(“reverse_each”) { number.times { arr.reverse_each {|x| x} } } x.report(“reverse”) { number.times { arr.reverse } } x.report(“each”) { number.times { arr.each […]

删除链接已停止工作data-method =’delete’但转到显示页面

我只是注意到我的应用程序中的所有各种删除链接现在只是显示页面。 这个应用程序从rails 2.3.8开始,现在是rails 3.2.17 rails代码示例: 控制器, def destroy @group = Group.find(params[:id]) @group.destroy respond_to do |format| format.html { redirect_to(groups_url) } format.xml { head :ok } end end 和, def destroy @link = Link.find(params[:id]) @link.destroy respond_to do |format| format.html { redirect_to(links_url) } end end 哪个产生: HTML, x 和, x 我注意到我有, = javascript_include_tag “application” 在我的应用程序布局模板中,我尝试更新它, = javascript_include_tag :defaults […]

怎么逃避? (问号)运算符在Rails中查询Postgresql JSONB类型

我正在使用Rails 4.2和Postgres 9.4来试用新的JSONB数据类型。 我的数据库中的一个JSONB列包含一个数组,我希望能够查询此数组包含特定值的记录。 我想出了如何使用新的JSONB“问号”(“包含”)运算符来完成此操作,如下所示: http : //www.postgresql.org/docs/9.4/static/functions-json.html 所以在原始SQL中我可以像在这个例子中那样工作: SELECT * FROM people WHERE roles ? ‘32486d83-4a38-42ba-afdb-f77ca40ea1fc’; 但我无法通过ActiveRecord看到从Rails中进行此查询的任何方法。 我尝试使用“where”方法进行原始查询,如下所示: Person.where(“roles ? ?”, “32486d83-4a38-42ba-afdb-f77ca40ea1fc”) 但由于问号是用于替换参数的特殊字符,我收到此错误: ActiveRecord :: PreparedStatementInvalid:在:roles中错误的绑定变量数(1为2)? ? 我想我需要一种方法来逃避“?” 字符,因为我希望它从字面上通过。 我试过了 \? 和?? 没有运气。 任何帮助表示赞赏!

Rails 4:如何通过AJAX更新基于另一个collection_select的collection_select?

问题:我需要根据组织集合的选择过滤单位集合。 选择组织后 , 单位下拉菜单应刷新以仅显示属于知情组织的单位 。 我检查过这些问题: Rails表单:使用AJAX基于其他collection_select值更新collection_select选项 UJS,AJAX,Rails 4,form_for collection_select将值传递给方法并将值返回到表单 带有collection_select的rails中的ajax 如何添加onchange事件以在rails中选择标记 Rails表单:使用AJAX基于其他collection_select值更新collection_select选项 Rails form_for collection_select忽略select_tag接受的远程ajax调用 远程选择,控制器需要更多表格数据 这些文件: http://guides.rubyonrails.org/form_helpers.html http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_from_collection_for_select 到目前为止这是我的代码: 楷模 class Organization < ActiveRecord::Base has_many :units has_many :projects, through: :units end class Unit < ActiveRecord::Base belongs_to :organization has_many :projects end class Project < ActiveRecord::Base belongs_to :organizaton has_one :organization, through: :unit end 查看 […]

从Rails中的字符串解析/提取文本?

我在Rails中有一个字符串,例如“这是一个Twitter消息。#Tossstoy的战争与和平。我喜欢这本书!”,我想解析文本并仅提取某些短语,如“战争与和平”利奥托尔斯泰“。 这是使用正则表达式并在“#books”到“。”之间解除文本的问题吗? 如果消息没有结构,例如:“这是一条Twitter消息,那么Leo Tolstoy的战争与和平我喜欢这本书!” 或者“这是Twitter的消息。我喜欢Leo Tolstoy #books的战争与和平书”如何在不知道事前口语的情况下可靠地拉出“战争与和平由Leo Tolstoy”。 有没有可以帮助我做到这一点的gem,方法等? 至少,你会说我想做什么? 它将帮助我在Google上搜索解决方案。 我尝试了几次“解析”搜索没有运气。 —编辑—基于@rogeliog建议,我将添加以下内容: 我可以忍受#books之后的垃圾文本,但之前没有。 我试过“匹配。(/#books。* /)” – 结果在这里: www.rubular.com/r/gM7oSZxF5M 。 但是我如何捕获结果#6? (例如,当某人将#books放在句子末尾时)? 有没有办法让我用正则表达式做if-then? 就像是: 如果[#books在消息的末尾], 然后[拿#books之前的最后10个字], 别的[match。(/#books。* /)] 如果您提供正则表达式,请使用rubular.com通过永久链接发布您的解决方案

包括控制器中的模块

我已经在ruby on rails应用程序的lib目录中完成了一个模块 module Select def self.included(base) base.extend ClassMethods end module ClassMethods def select_for(object_name, options={}) #does some operation self.send(:include, Selector::InstanceMethods) end end 我在控制器中称之为 include Selector select_for :organization, :submenu => :general 但我想在函数中调用它,即 def select #Call the module here end

为什么capybara在请求规格中不可用?

使用rspec和capybara处理新的Rails 3.2.9应用程序。 我在Gemfile中有以下内容: gem ‘rspec-rails’ gem ‘capybara’ 以及spec / spec_helper.rb中的以下内容: require ‘rspec/rails’ require ‘capybara/rspec’ 并在spec / requests / asdf_spec.rb中: require ‘spec_helper’ describe ‘Asdf’ do describe “GET /asdfs” do it “should list asdfs” do visit asdfs_path end end end 此测试失败: Failure/Error: visit asdfs_path NoMethodError: undefined method `visit’ for # # ./spec/requests/asdfs_spec.rb:19:in `block (4 levels) in ‘ […]

使用Ruby aws-sdk跟踪上传文件到S3的进度

首先,我知道在SO中有很多类似于这个的问题。 在过去的一周里,我读过大多数(如果不是全部的话)。 但我仍然不能为我做这项工作。 我正在开发一个Ruby on Rails应用程序,允许用户将mp3文件上传到Amazon S3。 上传本身效果很好,但进度条可以极大地改善网站上的用户体验。 我正在使用aws-sdk gem,这是来自亚马逊的官方gem。 在上传过程中,我在其文档中随处可见回调,但我找不到任何内容。 文件一次一个地上传到S3,因此不需要将其加载到内存中。 也不需要多文件上传。 我想我可能需要使用JQuery来完成这项工作,我很好。 我发现这看起来很有前途: https : //github.com/blueimp/jQuery-File-Upload我甚至试过这里的例子: https : //github.com/ncri/s3_uploader_example 但我无法让它对我有用。 aws-sdk的文档还简要描述了使用块的流上传: obj.write do |buffer, bytes| # writing fewer than the requested number of bytes to the buffer # will cause write to stop yielding to the block end 但这几乎没有帮助。 如何“写入缓冲区”? 我尝试了一些总是会导致超时的直观选项。 我怎么能基于缓冲更新浏览器? 有没有更好或更简单的解决方案? […]

我可以将系统库(例如libxml2)合并到一个我可以部署到Heroku的gem(例如nokogiri)中编译吗?

Nokogiri在转换为UTF-8字符时出现问题,后者最终来自libxml2,特别是版本2.7.6,这是Ubuntu 10.04 LTS上支持的最高版本。 该错误已在2.7.7及更高版本中修复,但由于我们的应用程序托管在Heroku(bamboo-ree-1.8.7堆栈,基于Ubuntu 10.04)上,我们必须使用2.7.6版本,并继续体验bug,除非: 有人可以/已经攻击了nokogiri以解决问题 Canonical颠覆了Ubuntu 10.04支持的libxml2版本(和/或Heroku更新了堆栈中的libxml2) 我可以想出一种方法让nokogiri使用libxml2版本,我可以将其与应用程序捆绑在一起,以便可以部署到Heroku。 很高兴听到有关1或2的任何反馈,但很好奇3是否可行。 以下是我所知道的可能性: Nokogiri可以链接到位于非标准位置的图书馆 – http://nokogiri.org/tutorials/installing_nokogiri.html 以这种方式创建的gem可以安装到供应商/gem,因此优先于系统gem 我的问题是,我可以将更高版本的libxml2包含在应用程序中,以便编译的供应商gem在我提交它并将其推送到Heroku时使用它吗?