Tag: ruby

错误:缺少表“self”的FROM子句条目(Rails 4 Active Record事务,postgresql 9.4))

在创建模型交易时,我使用after_create在DealPrize表上创建奖品。 Deal和DealPrize属于/ has_many关系:a Deal有许多Deal奖品,Dealprize属于Deal。 它的工作方式如下:在Deal中,我有一个列’prize-number’,我使用了after_create,以便amdin创建一个新的交易evetytime,应用程序获取此prize_number列,并创建此批量的奖品(插入尽可能多的行必要时)在DealPrize表中。 我无法在postgresql查询中使用我的Rails app moel变量。 这是一个有效的查询( 使用数字代替变量 )。 它将它写在我的数据库上。 model deals.rb CONNEXION = ActiveRecord::Base.connection def create_prizes Deal.transaction do self.120000.times do |i| CONNEXION.execute “INSERT INTO deal_prizes (deal_id, created_at, updated_at) values ( 62, ‘2009-01-23 20:21:13’, ‘2009-01-23 20:21:13’)” end end end 但是,当我按照应变量替换示例值时,我得到一个错误。 CONNEXION = ActiveRecord::Base.connection def create_prizes Deal.transaction do self.120000.times do |i| CONNEXION.execute “INSERT INTO […]

单击#new&#edit时如何停止NoMethodError?

我很难弄清楚如何将多个控制器的逻辑合并到侧边栏中。 例如,我想在侧边栏中有一个部分,它使用@habits逻辑和一个使用来自goals_controller的@unaccomplished_goals逻辑的部分。 对于这个问题,我们只关注@unaccomplished_goals 。 在应用程序的侧边栏中正确显示,它来自goals_controller #index @top_3_goals = @unaccomplished_goals.top_3 但是如果我点击链接目标/ new或目标/ 1 /编辑我得到可怕的: undefined method each for nil:NilClass ! 这是一个视图细分: 我在views/layouts/application.html.erb使用来抓取views/sidebar/_sidebar.html.erb ,以便使用来抓住views/goals/_upcoming.html.erb 意见/目标/ _upcoming.html.erb 视图/侧边栏/ _sidebar.html.erb Upcoming 目标控制器 def index if params[:tag] @goals = Goal.tagged_with(params[:tag]) else @goals = Goal.all.order(“deadline”) @accomplished_goals = current_user.goals.accomplished @unaccomplished_goals = current_user.goals.unaccomplished @top_3_goals = @unaccomplished_goals.top_3 end end 目标模型 class Goal { where(accomplished: […]

wicked_pdf创建本地文件的超链接

我不想创建一个PDF文档,其中包含指向本地文件的超链接。 例如,下载PDF时,以及一些文件,PDF包含指向这些文件的超链接。 这有可能实现,如果是,如何实现?

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类型。 谢谢!

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

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

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 # […]

Mac OS X Lion – mysql:找不到命令

我从这个源安装了MySQL,安装成功完成。 但是当我在终端中运行哪个mysql时 ,输出为空。 当mysql时 ,输出是 -bash:mysql:找不到命令 另外,我更新了bundle并运行了应用程序 – 结果: /Users/adam/.rvm/gems/ruby-1.9.3-p385/gems/mysql2-0.3.11/lib/mysql2.rb:9:in `require’: Incorrect MySQL client library version! This gem was compiled for 5.5.28 but the client library is 5.6.12. (RuntimeError) 我可以请你帮忙解决这个问题吗? 先感谢您 编辑:我也尝试将gem安装到mysql目录,如 gem install mysql2 — –with-mysql-config=/usr/local/Cellar/mysql/5.5.28/bin/mysql_config 但不幸的是同样 – 成功安装,但当我运行应用程序时,仍然是同样的错误

具有多态关联的灯具不起作用

我正在尝试实现Rolify gem但是无法添加具有范围的灯具。 下面的(模型)测试的最后一行失败,因为目前主持人角色似乎全局给予@user ,而不是仅给予组织1。 下面的灯具没有使用resource_id和resource_type ,它们在gem文件中提到了夹具,但我不知道如何使用它们。 如何将主持人角色的范围设置为仅限组织1? roles.yml moderator: id: 1 resource: one (Organization) users.yml里 one: email: example@example.com roles: moderator, organizations(:one) # I was hoping this would set the scope of the role to organization one but it isn’t (seems to set the role globally). test.rb def setup @moderator_role = roles(:moderator) @organization1 = organizations(:one) @organization2 […]