Activerecord SingleOrDefault查询返回null(有时),即使数据存在

我是一个亚音速新手,正在用它编写我的第一个应用程序。我有一个数据库,有两个表,分别是Member和Club。Club表有三个字段链接到Member表中的主键(ID)(PresidentID、VicePresidentID和TreasureId)。如果我对Member.SingleOrDefault进行三次调用,它们都会返回有效数据。 i、 e: 亚音速在active record Club类中很好地创建了一个Members属性,该属性引用回Members表。但是,如果我通过Club active

Activerecord 未知列-CDbCriteria中的多个联接

我正在尝试从多个表中获取数据,结果出现以下错误: SQL:SQLSTATE[42S22]:未找到列:“字段列表”中的1054未知列“p.firstname” $criteria = new CDbCriteria; $criteria->select = 'ohu_id, hash, p.firstname, p.surname, p.city, u.email AS Email'; $criteria->join = 'LEFT JOIN `profiles

Activerecord Yii php框架中的活动记录模型是什么?

我正在阅读一篇关于Yii框架的教程。它使用了一个我不知道其含义的术语。它是“活动记录模型”。它在数据库部分教程中使用 你能给我更多关于这个术语的解释吗?来自Yii的文档: 活动记录(AR)是一种流行的对象关系映射(ORM)技术。每个AR类表示一个数据库表(或视图),其属性表示为AR类属性,AR实例表示该表中的一行。通用CRUD操作作为AR方法实现。因此,我们可以以更面向对象的方式访问数据 例如,我们可以使用以下代码向tbl_post表插入新行: $post=new Post; $post->

Activerecord 具有一对多关系的Rails连接和选择选项

我有两个模型用户和配置文件和用户可以有许多配置文件,每个配置文件有一个视频链接 我想写一个高效的查询,查找所有用户(创建了他们的个人资料)的列表,以及添加到他们最新个人资料中的最新视频链接 提前感谢。应该是这样的: User.joins(:profile).pluck(:user_attribute, :profile_video_url) 根据需要修改它-> 用勇气!->

Activerecord Yii2:活动记录添加不在状态

向活动查询中添加条件的活动记录方式是什么 在yii1.x中,您可以像这样使用CDbCriteria $cr = new CDbCriteria(); $cr->addNotInCondition('attribute', $array); 在Yi2活动记录实现中似乎没有等效的API调用,如何通过活动记录实现这一点?所有查询操作数现在似乎都合并到了每个文档中的yii\db\QueryInterface::Where() 现在可以使用以下内容添加In条件 $query = MyModel::

Activerecord 如何在Rails5中的rake任务中调用迁移

在Rails5中,我不再能够使用rake任务迁移不同目录中的文件。我得到的错误是:版本号为20180209214145的未迁移 你知道我如何在Rails 5中做到这一点吗?我认为行ActiveRecord::Migrator.migrations\u path=['db/manual\u migrate']不再像预期的那样工作,但我不太确定如何修复它 desc 'Run db:migrate:up on a task we wish to migrate manually (e.g. not

Activerecord Yii2通过连接表取消记录链接

我有两个模型;用户和抽奖。我还有一个连接表,其中只有一个id、一个user\u id、一个raffle\u id 然后,我从用户模型中获得如下莱佛士: public function getRaffles() { return $this->hasMany(Raffle::class, ['id' => 'raffle_id']) ->viaTable('raffle_user', ['user_id' => 'id']); } public f

ActiveRecord::不带表的Base

这是在前一段时间提出的(),但似乎没有维护上面提到的Rails插件()。没有办法让ActiveRecord保持原样吗 如果没有,是否有任何方法可以在不使用ActiveRecord的情况下获取ActiveRecord验证规则 当然,ActiveRecord希望表存在。验证只是ActiveRecord中的一个模块。您是否尝试过将它们混合到您的非ActiveRecord模型中 class MyModel include ActiveRecord::Validations # ... end

Activerecord 有多个和总和,命名为范围

我有这样的情况: Stories has many Tasks Tasks have an integer called hours_left 我需要一个命名范围来查找其所有任务剩余时间超过0小时的故事 基于。我写道: class Story has_many :tasks named_scope :uncompleted, { :joins=>["INNER JOIN tasks ON tasks.story_id = stories.id"], :group

将Arel用于嵌套集合&;联接查询并转换为ActiveRecord::关系

我有一个组织模型(嵌套集)。我为人们树立了一个榜样。一个人可以有另一个人作为代理人。一个组织由一个人拥有。一个组织只对拥有者或其副手可见 我希望检索给定人员可见的所有组织,即该人员拥有的所有组织或由人员拥有的所有组织(给定人员是其代理人): o = Arel::Table.new(:organisations) p = Arel::Table.new(:people) pd = p.where(p[:id].eq(3).or(p[:deputy_id].eq(3))).project(:id)

Activerecord 什么是动态刀?

本文讨论了使用动态DAO而不是activerecord。在静态类型语言的上下文中,“动态”DAO到底是什么意思?这只适用于VM上的静态类型语言还是编译语言?DAO和ActiveRecord都是访问数据库中数据的模式。DAO代表“数据访问对象”。以下是相关Wikipedia页面的链接,以了解更多关于各个模式的信息 ActiveRecord: 道: 注意,RubyGemActiveRecord是“活动记录”模式的一个实现,它恰好与模式同名

ActiveRecord(CDbCriteria)与QueryBuilder?

我必须制作一些过滤器,例如获取给定部门的人员,我想知道最好的方法 其中一些需要连接多个表 有人知道CDbCriteria和查询生成器之间的主要区别吗?我特别想知道与数据库的兼容性 我在关于查询生成器的Yii文档中发现了以下内容: 它提供了一定程度的数据库抽象,简化了到不同数据库平台的迁移 CDbCriteria对象是否也一样?更好吗?在处理Yii的(AR)抽象(通常总是这样)时,使用了CDbCriteria的概念。AR要求您已经为数据库中的各种表创建了 一种非常不同的访问数据库的方式;实际上,它

Activerecord 活动记录删除无效

我尝试删除数据库中包含Yii活动记录的条目。但我觉得它真的很奇怪。 我想删除表中的所有记录,其中vehicle\u id=给定id,plug\u id不在(给定字符串) 我尝试了很多方法,除了这个,什么都没用 $query = "delete from `vehicle_details` where `vehicle_id`= ".$vehicle->id." AND `plug_id` NOT IN (".implode(',', array_map(function($item) {

Activerecord RubyonRails将一个模型的对与第二个模型相关联

我正在构建一个rails应用程序,其中有模型、用户、图像和图像对。我希望每个图像对有2个图像,分别命名为:before\u image和:after\u image 因此: 用户有多个图像多对一 用户拥有多对多对图像 图像可能只有一个图像对 图像对总是有两个图像 我的一切正常,除了我不能打@image.image\u-pair。我得到: PG::UndefinedColumn:错误:列映像\u对。映像\u id不存在 我如何设置它,以便从它的图像中获取图像对 schema.rb删除了一些不相关的

Activerecord 在Yii2中创建/更新子关系模型时创建/更新父关系

我有一个用户模型(名称、用户名、密码等)和一个客户模型,该模型与用户模型的关系为1:1,该模型用于存储(名字、姓氏、电子邮件等) 我想让客户通过注册过程创建他们的帐户,要求他们提供(名字、姓氏、电子邮件、密码等) 因此,很明显,注册过程必须首先创建一个用户帐户(使用,名字和姓氏作为名称,电子邮件作为用户名,密码)。然后可以创建客户帐户 尽管如此,如果客户以后想更改其姓名,我们必须更新用户帐户中的字段名 在Yii2中实现这一目标的最佳方法是什么?? 我试图在Customer AR上重写before

ActiveRecord查询,其中id为的将丢弃破折号后的内容

我刚刚在where方法中遇到了一些相当令人惊讶的事情。当我查询类似于MyModel.where(id:'121 false')的内容时,它会在SQL中转换为id=121,即ActiveRecord似乎会删除破折号后面的内容。这似乎只有在我使用id进行查询时才会发生。有人能帮我指出这是在哪里实现的吗?谢谢。id字段可能是整数类型,因此ActiveRecord基本上通过调用以下命令将参数强制转换为整数: '121-fake'.to_i # -> 121

Activerecord 从数据库中检索值的Codeigniter问题

好的,我正在尝试重新计算成员是独立的和活动的行数 我把问题缩小到我的模型。在我给get_where添加第二条之前,一切都很顺利 这是我的模型函数 function count_individual_active_members() { $query = $this->db->get_where('Membership', array('Membership_Status' => 'Active', 'Membership_cat' => 'Individual'));

一个订单怎么写;“有一个”;Rails和ActiveRecord中的子属性?

我试图按照一个组织的主要地址的状态进行排序 我有一个具有属性状态的地址模型 还有一个组织,它有一个:main\u address,as::addressable,class\u name:'address' 所以我尝试做一些类似于这个(不工作)组织的事情。all.order\u by(:main\u address.state) 我搞不懂语法。组织。连接(:main\u address)。顺序('addresses.state')应该做你想做的。试试这个:组织。连接(:main\u addres

在ActiveRecord查询中使用嵌套关联混合:include和:join

我想知道是否以及如何在关联中实现混合:include和:join,以避免从数据库检索对象时不必要的往返 例如,当具有以下模型空间时: ————— ————— ————— | A | 0..1 ————— * | B | * ————— 1 | C | ————— ————— ————— 在这里,我通过一个已知的标识符加载一个A的实例以显示在我的视图中,但我也想加载B和C(

Activerecord 检索双重关系

我试图找出如何执行以下操作:检索给定用户的好友列表的所有活动。让我详细说明: 给定一个有很多朋友的用户,通过:friendships。用户具有活动。现在我要检索的是一个排序列表,如下所示:user.friends.activities.order('created_at DESC')。当然这不管用 我真的需要遍历所有的朋友并编译一个活动列表吗,还是Rails新手(我)缺少一个功能:-) 提前谢谢 您可以尝试以下方法: Activity.where(:user_id => user.frie

Activerecord 模型中的怪异行为(RubyonRails4)

我的模型代码中有奇怪的行为, 但我不确定这是我的问题还是RubyonRails的一些奇怪问题 我有一个亲戚 有很多:聊天室用户链接到聊天室用户 我定义了 甲级 def客人 chat_user#从返回的chat_user有很多 结束 结束 ive 2链接到此模型类的ChatUser记录 当我调用聊天对象A.Chat\u user->count时,每个返回2条记录 当我调用object of.guest->count return 2时,但每个循环只有一次 可能是什么问题 多谢各位 在puma服务器

activerecord信誉系统gem阻止保存新对象

我正在跟踪railscast添加一个活动记录声誉系统。()我有一件模型衬衫,我希望用户能够投票。我用以下内容更新了我的文件: gem 'activerecord-reputation-system', require: 'reputation_system' 我运行了一个bundle安装并重新启动了服务器。现在,当我尝试创建一件新衬衫时,我收到一个通知,即即使我输入了一个名称,衬衫仍缺少一个名称,并且我无法创建一件新衬衫。一旦我移除gem并运行bundle安装,一切都会恢复正常,我就能够毫无问

ActiveRecord#create不允许设置id

我需要批量插入>100.000条记录。 DB不会创建id,我必须使用给定的UUID: 使用mymodel.new在循环中执行此操作分配ID,然后保存记录将起作用,但速度太慢(大约20分钟) 当我创建一个数组“记录”并使用mymodel.create(记录)时,我遇到了“无法批量分配id”问题。 我已经尝试了我能找到的所有解决方案: 模型的“attr_accessible:id,…”。适用于除id以外的所有人 (重新)定义“def self.attributes\u protected\u by

通过ActiveRecord迁移创建具有外键约束的SQLite 3表

与MySQL和Postgres不同,SQLite不支持向现有表中添加外键约束。因此,不能在ActiveRecord迁移中使用add_foreign_key创建外键约束 但是,从3.6.19开始,SQLite在CREATE TABLE语句中包含外键约束,并且在定义CREATE_TABLE迁移中的reference列时指定foreign_key:true: class CreateChildren < ActiveRecord::Migration def change creat

Rails 5.0.0.1,ActiveRecord包括select和HASU MUN THORT

我正在使用以下代码行生成我的表: def index @documentation_languages = Documentation::Language .includes(:tags) .select(:id, :abbreviation, :name, :version) .order(:slug) end 他们会叫: SELECT "documentation_languages"."id", "documentation_languages"."abbre

Activerecord 什么';保存多个步骤页面中的所有数据的最佳做法是什么?

我需要帮助。 我有一个Yii2的web应用程序,它一步一步地包含多个页面,可以将任何数据聚合到一个模型中。想知道如何聚合所有数据:使用多个AR模型或在一个AR模型中使用不需要的列。最好的做法是什么 比如说。我有一个“客户”ar模型。在第一步中,我有“个人信息”页面和字段:名字、姓氏等。在第二步中,我有另一组数据,如“联系信息”:电子邮件、电话等 最佳实践是什么:创建一个“客户”AR模型,其中包含所有不需要的列(电话、名字、姓氏、电子邮件),或者创建两个AR模型,其中包含所需的列,例如Custom

在ActiveRecord中插入父级-子级

我正在使用CastleActiveRecord映射数据库 我有这样一个简单的数据库: 和映射代码: 组: [ActiveRecord("[Group]")] public class Group : ActiveRecordBase { private long m_ID; private string m_GroupName; private string m_Description; private IList&

Activerecord Sinatra中活动记录迁移的奇怪错误

下面是我在辛特拉迁移的Rakefile。当我运行它时,出现了两个奇怪的错误 未初始化的常量记录器(联机ActiveRecord::Base.Logger=Logger.new(STDOUT)) 无法将字符串转换为整数(在线ActiveRecord::Migrator.migrate('db/migrate')) 有人知道如何解决这些问题吗?谢谢 uninitialized constant Logger 在使用Ruby标准库之前,请将Logger类包括在内:需要“Logger”无法将字符串转换

Activerecord Yii2,如何通过查询检查关系?

我有两个模型,通过连接表建立关系。所以,我试图从db得到一些没有这种关系的模型。 我可以自己做。 但如何通过查询实现这一点呢?使用with或joinWith方法,并在连接表列中检查是否为NULL?创建连接的模型并将其添加到AR模型方法中: /** * @return ActiveQuery */ public function getJunctions() { return $this->hasMany(Junction::className(), ['someId' =>

有没有更雄辩的方法来创建一个列数可变的表:activerecord&;Rails 3?

目前我有一个订单类。每个订单有1到无穷多个项目。在运行时之前,项目数是未知的。由于active record/rails中没有字段类型的数组,如何创建可变数量的列 我能想到的唯一方法是提前指定一组票证列;但它非常缺乏灵活性和效率: class CreateOrders < ActiveRecord::Migration def self.up t.integer :ticket_id, :ticket_id, :ticket_id, :ticket_id, :ticket_id

Activerecord 是否有Rails 3替换的子类_?

我正在尝试获取特定类型的所有派生类。在Rails 2+中,您可以说: Class.subclasses_of SomeClass 这是因为activesupport/lib/active\u support/core\u ext/object/extensing.rb在Rails 3中消失了 Rails 3中是否有替换件?有其他选择。始终可以选择搜索ObjectSpace,例如: classes = [] ObjectSpace.each_object(Class) do |klass|

Activerecord 一个模型的多个属性

我有一个模型“评论”,它是由一个模型“用户”为给定的“城市”和“部门”给出的。 在为表“comments”创建模式时,我将city\u id、department\u id和user\u id列放在表cities、departments和users中,作为各自id的外键 class Comment < ActiveRecord::Base belongs_to :user belongs_to :city belongs_to :department end

Activerecord 没有主键的表之间的关系

两个表1和表2,其中表2中的id_schedule不是主键: 任务是从表2中获取日期。我有以下代码: public function relations() { return array( 'scheduleTitles' => array(self::BELONGS_TO, 'ObjectScheduleTranslate', 'id'), 'scheduleDates' => array(self::BELONGS_TO, 'Objec

Activerecord Rails 4.1枚举:enum.status=nil

我尝试了rails 4.1的新枚举功能,但遇到了一些问题 我的模型如下所示: class Report < ActiveRecord::Base after_save :notify_clients before_update :update_progress before_create do self.status ||= 'started' end enum status: %w{started active fail success} #... e

Activerecord Yii2:具有多个条件的updateAll

如何根据我的情况更新所有记录?(我的代码无效) $condition[]=['>','position',$old_position]; $condition[]=['如果忘记了运算符,只需尝试: $condition = ['and', ['>', 'position', $old_position], ['<=', 'position', $new_position], ['in', 'id', $ids], ]; $condition=['和', ['

Activerecord Yii2:在保存前/保存后从连接表中删除记录

我正在尝试从连接表中删除记录。 当frequencie为2(每日)时,我使用连接表将planning\u id的与dagen\u id的连接起来。但是当通过示例将frequencuintieget更新为weekly时,我需要从连接表中删除所有那些planning\u id 这就是我迄今为止所尝试的: public function beforeSave($insert) { if (parent::beforeSave($insert)) { $

Activerecord 在序列化数组yii2.0中查找特定值

我正在使用Yii 2.0。这是我的字段,它有序列化值,现在我想找到,如果这个字段中存在94,那么我需要此行中的所有值。 post_家长:a:2:{i:0;s:1:6;i:1;s:2:94;} 所有的努力都将得到回报&提前感谢这是一个sql问题,而不是Yii。以下是sam的问题: 构建如下所示的查询: $query->andWhere('your_field_here REGEXP '.*;s:[0-9]+:"your_value_here".*'); 标签sql对这个问题有什么重要意义吗

Activerecord yii与条件只有一个关系

我的代码中有一个hasone关系 public function getDevice(){ return $this->hasOne(UserDevice::className(),['user_id' => 'id'])->where(['is_latest'=>true]); } 在我的查询中,我试图获取用户详细信息 $query = User::find(); $query->joinWith('device')->all(); 如果

如何在ActiveRecord 3中向单个对象而不是整个类添加前验证回调?

如何在ActiveRecord 3中将“验证前回调”添加到单个对象,而不是整个类? 在AR 2中,我喜欢这样: module ObjExtend def before_validation p 'before_validation' return super end end obj.extend ObjExtend 但是它不再工作了,这是因为在rails3中,您不能再仅仅在模型中定义方法,而这些方法是以所讨论的回调命名的。

Activerecord Rails 4多对多关系

我有一个应用程序,它有两个需要多对多关系的模型。我最初试着使用has_和(你属于)(你属于)很多(你属于)(你属于)(你属于)很多(你属于。在网上搜索之后,我确信这不是我所需要的。所以,我换成了一个有很多通过的方法。然而,这也不起作用。我现在对这个问题感到非常困惑。我已经把它撕了很多次,并尝试了一个又一个教程,但都没有用 我试图连接的模型是Message和Author。在我最近的尝试中,我创建了一个名为Authoring的连接模型(带有相应的表)。这是我的密码: message.rb h

数据库配置未指定适配器(Sinatra+;Heroku+;Activerecord)

我(在Sinatra+ActiveRecord Heroku上)收到一个错误,数据库配置没有指定适配器 从一些研究来看,这似乎是因为Heroku预计在装配过程中不会使用环境变量 我从列出数据库URL的db环境文件中删除了env vars,但仍然收到相同的错误 编辑:这在一天前db文件未更改的情况下也起作用,所以我不确定会出什么问题 2015-09-01T02:44:40.980448+00:00 app[web.1]: I, [2015-09-01T02:44:40.980313 #3] IN

  1    2   3   4   5   6  ... 下一页 最后一页 共 19 页