草庐IT

ActiveRecord

全部标签

php - 使用 Codeigniter 在 MySQL 中安全地转义动态表名

我遇到了一个小问题。我目前正在开发一个需要在MySQL中使用动态表名的应用程序。基本上,我有一个根据多种因素(流派、播放长度、发行日期等)从数据库中选择专辑的过程——这个过程的一部分允许用户创建一堆自定义过滤器..自定义过滤器向用户返回符合该选择标准的所有相册的计数。然后将这些专辑的ID存储在具有随机生成的哈希/序列号的表中(例如albumSelect_20880f9c05d68a)我这样做是因为我不想在一个字段中存储一个巨大的逗号分隔列表(真的很傻)——而且我不想像这样将一组值发送到我的HTML中的隐藏字段只会增加数据吞吐量(一次可能有数千行)在CodeIgniter中,我使用查询绑

mysql - 请求卡在 ActiveRecord::QueryCache 中间件中

部署我们的Rails应用程序(4.0.9,Ruby2.1.2)后,我们注意到对我们应用程序的请求在一段时间后挂起,通常是1天左右。使用gemrack_timer,我们能够找出请求卡在ActiveRecord::QueryCache中间件处。RackTimer(incoming)--ActiveRecord::QueryCache:925626.7731189728ms删除后,我们的应用程序似乎恢复了正常。但是,我知道这个中间件的目的是提高性能,所以删除只是一个临时解决方案。我们使用带有适配器mysql2(0.3.13)的mysql(5.1.67)更新:在我发布这个问题之后,服务器又开始

mysql - 同一列有 2 个时区的 gem groupdate 问题

我正在使用gemahoy来跟踪访问情况,并使用groupdate来显示每日统计数据。为了计算每天的访问量,我在Visit模型中使用了这个查询:Visit.group_by_day(:started_at).order('started_at').count直到第18天我的时区从BRT更改时,它一直运行良好(-03:00)至BRST(-02:00).现在,上面的查询返回18点后每一天的0访问次数:2.1.3:026>putsVisit.group_by_day(:started_at).order('started_atdesc').limit(10).count.to_yaml(0.3

php - 使用 Active Record 在 Yii 中调用数据库 View

我了解如何使用Yii的事件记录环境查询表。我找不到调用mysqlView的文档。另外,我知道如何使用gii工具在事件记录中对表进行建模,但是有没有办法为数据库View执行此操作? 最佳答案 我没有相同的经历,此评论适用于遇到麻烦的人。使用带有一些连接和计算的mysqlView我得到以下错误..app\\models\\db\\WarComplete必须有一个主键。我通过添加...解决了这个问题publicstaticfunctionprimaryKey(){return['id'];}...覆盖我的模型。

mysql - 连接子句中的 Rails ActiveRecord 转义变量

此查询有效,但对SQL注入(inject)完全开放:products=Product.find(pids,:select=>'products.*,P.code',:joins=>"leftjoinproduct_dist_matchPon(P.pid=products.pidandP.cid=#{cid})",)如何正确转义cid变量?conditions参数允许格式['foo=?',bar]用于此目的,但joins不允许。我不想使用find_by_sql,因为那时我需要添加属于模型默认范围的连接和条件(不会是DRY)。编辑:我的表结构基本上是这样的:products:pid(pri

如何避免使用未定义的方法“ ID”作为ActivereCord_Relation?

希望这不是一个重复的问题,因为我花了数周的时间搜寻stackoverflow寻求答案,并且还没有找到解决我的问题的解决方案。我在RailsAPI(Ruby1.9.3,Rails4.0.0)上有一个红宝石,并且正在使用ActivereCord与我们的数据库进行交互。当提出要求检索当前计划的横幅时,它可以很好地工作。但是,当没有横幅安排时,会经历500个响应:undefinedmethod`id'for#\u003cBanner::ActiveRecord_Relation:0x0000000628fba8\u003我的理解是,这是因为正在尝试使用固有的“ID”方法,这是当没有找到合格记录时数据库

mysql - 启用 local-infile 以将数据从 rails 加载到远程 mysql

我正在使用connection_ninja(https://github.com/cherring/connection_ninja)从我的Rails应用程序连接到远程mysql数据库。我的模型中有一个方法,它使用“加载数据本地infile..”从运行我的Rails应用程序的服务器加载一个csv文件到远程mysql数据库。代码如下:classProduct这给我以下错误:Mysql2::Error:TheusedcommandisnotallowedwiththisMySQLversion:LOADDATALOCALINFILE..我在服务器运行的/etc/mysql/my.cnf的[

mysql - 运行rails migration时无法添加外键约束报错

我的MySQL数据库中有一个用户表。在我的Rails4应用程序中,我创建了一个权限模型,如下所示:railsgmodelPermissionuser:referencesprivilege:references当我运行迁移以创建权限表时,该表确实在数据库中创建,但出现以下错误:==20170223171936CreatePermissions:migrating================================--create_table(:permissions)rakeaborted!StandardError:Anerrorhasoccurred:Mysql2::E

mysql - Yii2 NOT IN 条件不工作

我用它来查询不在:$usertypes=Usertype::find()->where(['notin','user_type_id',['2,3,4']])->all();错误:DatabaseException–yii\db\Exceptionundefinedoffset:1无法准备SQL:SELECT*FROMusertypeWHEREuser_type_idNOTIN:qp0还尝试了数组格式['2','3','4']但不起作用?问题出在哪里? 最佳答案 试试这个:$usertypes=Usertype::find()->w

mysql - 我怎样才能让 ruby​​ on rails 处理来自 MySQL 的重复记录错误

我在数据库的多个字段上有一个唯一索引。因此,如果您尝试在重复记录上调用保存,它会引发ActiveRecord::StatementInvalid并显示mysql错误。有没有一种方法可以通过创建唯一约束在Rails中处理这个问题,或者在发生这种情况时让它返回相关的错误消息?这是痕迹:ActiveRecord::StatementInvalid:Mysql::Error:Duplicateentry'2010-12-09-2-0-1-1'forkey2:INSERTINTO`entries`(`rejected_at`,`created_at`,`comments`,`overtime`,