Tag: ruby on rails

如何以这种方式对太阳黑子进行分页?

我有以下模型关联: class Product < ActiveRecord::Base has_many :prices class Price < ActiveRecord::Base belongs_to :product 这是我的控制器 class SearchController 5, :page => params[:page]) end @products = @search.results end end 然后我的看法: 假设我有10个产品,每个产品有20种不同的价格。 我的目标是每页显示5个产品,但如果页面上的价格数量一次超过25个,则价格会运行到下一页。 以下是我希望它做的两个不同的例子: Product 1, 2, 3, 4 + 5 Prices each = same page Product 5 + 6 Prices = this Product with Prices on next page […]

显示从数据库到现在最近的未来时间

在我的Ruby on Rails应用程序中,我希望能够在数据库中显示最接近当前时间的下一个未来时间,例如,如果存在时间为13:00,13:30,18的记录,则在数据库中显示:00,19:00等。如果当前时间是13:48,则显示时间18:00。 我有一个类似的事情与日期: = Date.today}.sort_by(&:show_date).first.show_date.strftime(“%A %e %B %Y”) %> 但试图适应这个时间: = Time.now}.sort_by(&:show_time).first.show_time %> 这不起作用,我收到以下错误: undefined method `show_time’ for nil:NilClas 这是因为s.show_time >= Time.now 。 如果我将其更改为s.show_time = Time.now错误发生但是它只显示当前时间而不是数据库中的时间。 值得注意的是,show_date和show_time在同一记录中,例如第一条记录的日期可能是26/01/2015,时间是22:00。 我想要的是显示日期在未来的记录时间并显示该日期的第一次,因为数据库中有两条记录,日期为26/01/2015,另一条记录的时间为22:00另一个时间是22:30。 有人可以帮忙吗?

如何使用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中的菜鸟,可能会犯一些愚蠢的错误,但我希望这对任何人都有帮助:)

删除链接已停止工作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通过永久链接发布您的解决方案

为什么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时使用它吗?