ConnectionNotEstablished之后在JRuby中有一个multithreading环境

我有Rails(4.2.6)应用程序,我使用Thread(s)进行Rufus :: Scheduler引起的后台数据处理。 我在开发环境中有工作应用程序,但是当我在nginx +乘客上将它移动到生产时,我得到exceptionActiveRecord :: ConnectionNotEstablished ,即使没有足够的负载。 从Threads执行的ActiveRecord :: Base后代的所有调用都包含在内 ActiveRecord::Base.connection_pool.with_connection{} 我之前从未使用multithreading环境,但在对问题进行一些调查后,我建议可能就是这个问题。 在JRuby下尝试它是否合理,哪种包含是优先的? 主机系统是Ubuntu 14.04 x86_64。

在ruby中运行rake导入任务时内存不足

我正在运行一项任务来导入大约100万个订单。 我循环遍历数据以将其更新为新数据库上的值,并且它在我的本地计算机上正常工作,具有8 gig的内存。 然而,当我将它上传到我的AWS实例t2.medium它将运行前50万行但是到最后,当它开始实际创建不存在的订单时,我将开始最大化我的记忆。 我正在将一个mysql数据库移植到postgres 我错过了一些明显的东西吗? require ‘mysql2’ # or require ‘pg’ require ‘active_record’ def legacy_database @client ||= Mysql2::Client.new(Rails.configuration.database_configuration[‘legacy_production’]) end desc “import legacy orders” task orders: :environment do orders = legacy_database.query(“SELECT * FROM oc_order”) # init progressbar progressbar = ProgressBar.create(:total => orders.count, :format => “%E, \e[0;34m%t: |%B|\e[0m”) orders.each do |order| if [1, 2, 13, 14].include? […]

Mail Gem:在浏览器中渲染收到的电子邮件/完整解析html部分

我正在使用Mail Gem在我的Rails 4应用程序中接收电子邮件。 通过Gem,每10分钟左右通过POP从邮箱中抓取邮件。 我需要渲染这些电子邮件 – 主要是HTML格式 – 并且无法在HTML中保存正文,更不用说处理嵌入式图像等内容了。 我可能在这里遗漏了一些东西 – 看着StackOverflow,但还没有找到相关问题的答案。 我一直在和你一起工作 message.body.decoded 并且还查看了html_part v.text_part – 但是我没有看到一个方法来获取所附的HTML。 看起来我需要剥离邮件gem似乎留在身体中的标题 – 然后还处理任何内联附件。 肯定有一个gem必须存在..? 还是一种方法……? 你的建议很有价值。 我确实找到了Mailcatcher Gem – 但这确实是它自己的Sinatra应用程序。 我可能只是尝试调整这个gem,但这似乎是很多工作。 当然其他人已经处理过这个问题..? 我还重视关于如何在MySQL中最好地存储消息体的建议 – 我正在考虑大文本或blob类型。 谢谢!

Railsgem“Axlsx”/“Rails-Axlsx” – 添加图像

我尝试将一个图像添加到我的工作簿/工作表中。 代码 : wb.add_worksheet(:name => “Doc1”, :page_setup => setup, :print_options => options) do |sheet| img = File.expand_path(‘../logo.jpg’, __FILE__) sheet.add_image(:image_src => img, :noMove => true) do |image| image.width = 7 image.height = 6 image.start_at 2, 2 end … end 但是,如果我打开文档,工作表上没有图像,我该如何解决这个问题呢? 如何正确的图像路径? 对于此测试,我将jpg复制到我的视图文件夹中,但通常是”app/assets/images/logo.jpg”所有图像。 我尝试使用img = File.expand_path(‘../assets/images/logo.jpg’, __FILE__) ,但它失败并显示“找不到文件!”

HTML表单命名约定的名称

在Rails和CakePHP1.2中,表单往往包含名称如下的输入元素: “name”属性中使用的符号是否有正式名称? 同样,在CakePHP1.1中,我确实认为同样的看起来像这样: 同样,“name”属性中使用的符号是否有正式名称?

分配关系id以在创建时记录,但不在更新时记录

我有两个模型:页面有很多部分。 我没有使用嵌套资源,因为还有第三个模型。 在我的页面#show中,我有一个链接来创建属于当前页面的新部分: @page) %> 在我的部分视图中,我有以下forms: . . . params[“page_id”] %> 当然,问题是这会将page_id正确传递到新的Section表单中,但是当用户通过编辑路径返回到表单时,params [“page_id”]为空。 我想在创建时设置一次page_id,并且永远不要让它再次被更改(也许有一种方法可以创建一个从表单中删除隐藏字段的条件,或者更清晰的方式?)。 非常感谢你的帮助。

在Rails 3中使用mapstraction升级google maps api

我正在尝试将应用程序升级到Rails 3.该应用程序需要一个可以编辑的地图,并且它一直在使用谷歌地图和地图绘制。 当我升级到rails 3时,地图停止显示,我认为这是因为它需要从谷歌地图api v2更新到v3。 我一直在尝试使用本教程升级它,但由于应用程序正在使用mapstraction,我一直难以让它工作。 最初,这是在HTML中: <script src="http://maps.google.com/maps?file=api&v=2&key=” type=”text/javascript”> maps.js如下: var Map = function() { this.init() } $.extend(Map.prototype, { m : false, init: function() { this.m = new mxn.Mapstraction(‘mapdiv’, ‘googlev3’) this.m.addControls({pan: true, zoom: ‘large’, map_type: false}) // this.m.enableScrollWheelZoom() this.m.setMapType(3) return this.m }, addPoint: function(lat, lng, html) { var myPoint = new mxn.LatLonPoint(lat, lng); var […]

rails 3 javascript没有执行,尽管文本/ javascript内容类型作为响应

我正在页面上执行非ajax GET请求。 在相应的控制器/动作中,我正在返回javascript。 但是,这个javascript没有被执行。 相反,它在我的浏览器上显示为文本。 被击中的动作: def my_action render :template => ‘shared/_alert.js.erb’, :content_type => ‘text/javascript’ end js.erb文件: alert(“hello”); Charles HTTP请求: GET /my_action HTTP/1.1 Host: 172.16.151.186:3000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Cache-Control: max-age=0 Accept-Language: en-us Accept-Encoding: gzip, deflate Cookie: _session_id=BAh7CEkiD3Nlc3Npb25faWQGOgZFRiIlZGZhMjFkOWRlNDQ3ZThlYjRiMzljNzMyMjg0N2E2YmJJIhBfY3NyZl90b2tlbgY7AEZJIjFtZ05jUmsxZlRIQ1FCaVVLczVCeUF2STNtY1gzUzhucTk3alF4RjVsVklFPQY7AEZJIhRjdXJyZW50X3VzZXJfaWQGOwBGSSIpYjMwNzg5NzItNDQzNi0xMWUxLTk5YzUtNGY3NjNlNzJhZmIyBjsARg%3D%3D–e345e67c4b130d2f3e4bdb48bd3d5d4f892f8272 Pragma: no-cache Connection: keep-alive 查尔斯HTTP响应: […]

轨道上的ruby:小叶轨道没有装载

使用RoR 4.1.4 我正在尝试使用leaflet-rails gem 。 我按照github页面中列出的步骤进行操作,但是当我尝试加载地图时,我看到了 ReferenceError: L is not defined 在浏览器控制台中。 这显然意味着正在加载和执行gem中的帮助程序,但它找不到leaflet.js文件。 但是,页面的head部分显示正在引用/assets/leaflet.js ,它实际上就在那里。 当我查看生成的代码时: var map = L.map(‘map’) map.setView([-54.0, 6.08], 16) L.tileLayer(‘http://{s}.tile.osm.org/{z}/{x}/{y}.png’, { attribution: ‘© OpenStreetMap contributors’, maxZoom: 18, subdomains: ”, }).addTo(map) 因此gem在map div下面添加了一个脚本,然后,由于sprockets机制和所有这些,所以加载了其他脚本。 对我来说,这看起来很明显,脚本不可能加载leaflet.js,因为它后来被引用! 那么……我是否误解了RoR如何处理gem和javascripts呢? 它一定是在某个时候起作用的…… 这是我的/app/assets/javascript/application.js: //= require jquery //= require jquery.ui.widget // Here I load a whole bunch of javascripts […]

Rails 4 – 完成后评估模型 – 结构

我仍然对Rails有所了解。 我正在尝试为基于项目的app添加评估function。 我希望每个项目参与者在项目完成时提交评估。 我有一个评估模型: Evaluation.rb # == Schema Information # # Table name: evaluations # # id :integer not null, primary key # user_id :integer # evaluatable_id :integer # evaluatable_type :string # overall_score :integer # project_score :integer # personal_score :integer # remark :text # work_again? :boolean # continue_project? :boolean # created_at :datetime not null # […]