草庐IT

Activerecord

全部标签

mysql - 可以通过事件记录中关联的计数来排序吗?

假设我的帖子有很多评论是否可以执行ActiveRecord查询以获取大多数评论排序的帖子?令我惊讶的是,这个在普通旧版MySQL中相对常见的查询在AR中似乎没有简单的答案。是的,您可以使用counter_cache,但这并不是真正重新创建原始查询。我错过了什么?更进一步。如果Posts有很多Comments而有很多Likes怎么办。是否有可能获得总计点赞数最多的帖子?谢谢! 最佳答案 正如您所说,counter_cache似乎是最接近“rails方式”的方式。到目前为止,我还没有遇到任何用于此特定目的的AR定义方法,但这是我所见过的

mysql - 优化返回数百条记录的 Rails 3.0 查询

环境:Rails3.0.6和MySQL我有以下两个模型:classEmployee我有一个页面,对于给定的用户,显示他手下的所有员工及其所有直接经理。此页面通常显示数十条记录,但对于执行级别的用户,可能会显示多达1000条记录。(出于各种原因,我们不想使用分页。)渲染页面的Controller方法如下(完整显示)defmanage_reports@tab="home"@sub="manage"add_breadcrumbI18n.t("home_menu.MyReports"),:manage_reports_path@my_reports=current_user.employees

mysql - has_and_belongs_to_many 连接表中不允许使用主键

我有两个实体、数据中心和项目之间的多对多链接表,在遗留代码中。我发现,这实际上是一对多的关系。作为清理关系的第一步,我想放一个唯一索引在其中一个字段上。现在我收到以下错误:has_and_belongs_to_many连接表(datacenters_projects)中不允许使用主键。我正在使用在ruby​​1.8.7p174和mysqlVer14.12Distrib5.0.77上运行的Rails2.3.8。这不是主键,它只是一个唯一索引。我想这是一个候选键,但我还没有确定它是一个主键。不知道为什么mysql认为这个是主键。我不知道为什么ActiveRecord会反对在has_and_

mysql - Rails/Active Record "ArgumentError: argument out of range"- 对于大于 24 小时的 "time"字段

我正在使用未使用良好约定的遗留数据库,但我无法更改任何架构。出现的一个问题是,对于某些时间字段,值大于24小时,例如:33:06:46。这给了我一个:ArgumentError:argumentoutofrange这个问题有人问过before但没有得到满意的答复。提问者最终说他使用了DataMapper,这是我想避免的。有没有人有任何想法来捕捉这个?我可以在不更改实际模式的情况下让Rails将其视为日期时间字段而不是时间字段吗?谢谢!塔里克 最佳答案 但不确定这是最好的方法:ActiveRecord使用ActiveSupport::

mysql - 检查mysql表是否已经存在

我使用activerecord连接到mysql数据库并在连接后创建表。到目前为止效果很好,问题是我不知道如何检查表是否已经存在。我认为它可以与table.exist一起使用?但不知何故我没有......这就是我到目前为止所得到的:ActiveRecord::Base.establish_connection(:adapter=>"mysql",:host=>"localhost",:username=>"my-username",:password=>"my-password",:database=>"my-db",:encoding=>"UTF8")#Howtocheckifitex

mysql - rails activerecord、mysql 和 mysql2 性能下降?

我最近才从Rails2.3.5升级到Rails3.2.7,并注意到我的某些查询的性能有所下降。我知道Rails3ActiveRecord在某些情况下比Rails2.3.5慢,但基准测试让我感到惊讶,我只是想确保我没有遗漏任何东西。我运行了以下查询,它在我的应用程序中非常受欢迎,作为基准SELECTSQL_NO_CACHEtable_name.*FROMtable_nameWHERE((string_col='value')AND(int_col1BETWEEN5AND30))ORDERBYint_col2DESCLIMIT1000我检查过:rails3.2.7与rails2.3.5ra

mysql - SQL 插入已提交但在下一个请求中找不到?

我在输出“已提交请求tokenxx”的RequestToken模型中放置了一个after_commit回调。您可以在我在下面包含的日志中看到,token记录已提交,下一个请求对对象的查找显示找不到。该问题间歇性出现,如果我刷新页面,则会找到记录并且请求会通过。环境AWSEC2+RDS、Ubuntu10.04、Rails3.2.8、MySQL20.3.11gem、apache22.2.14、phusionpassenger3.0.11有没有人见过这个?有什么建议吗?CommittedRequestTokenS8j311QckvEjnDftNW0e7FPHsavGWTelONcsE3X1R

使用 codeigniter 进行 MySQL 查询(事件记录)

我在codeigniter中使用以下查询:$this->db->select('products.id,categories.nameascat_name,products.nameasname,products.product_image,products.description,products.price,products.furl,products.on_sale,products.quantity_in_stock,products.product_code,products.rating_1,products.rating_2,products.rating_3,produ

ruby-on-rails-3 - Rails3 Mysql2::Error: Unknown column - ActiveRecord::StatementInvalid

我在这个级别的Rails中使用数据库是新手,我已经寻找了几个小时,但没有找到解决这个特定问题的方法。版本:Rails3.2.9、Ruby1.9.3、MySQL5.5.28(mysql2gem2.9.0)、MacOS10.7.5错误:ActiveRecord::StatementInvalidinAction_figures#listMysql2::Error:Unknowncolumn'action_figures.position'in'orderclause':SELECT`action_figures`.*FROM`action_figures`ORDERBYaction_fig

mysql - 在 codeigniter 中使用 Where 和 Where 条件更新 SQL

这是我的代码:publicfunctionremove_employee($emp_no,$now){$this->db->delete('employees',array('emp_no'=>$emp_no));$this->db->flush_cache();$this->db->start_cache();$this->db->where('emp_no',$emp_no);$this->db->where('to_date','9999-01-01');$this->db->update('dept_emp',array('to_date'=>$now));$this->db-