我是一个亚音速新手,正在用它编写我的第一个应用程序。我有一个数据库,有两个表,分别是Member和Club。Club表有三个字段链接到Member表中的主键(ID)(PresidentID、VicePresidentID和TreasureId)。如果我对Member.SingleOrDefault进行三次调用,它们都会返回有效数据。
i、 e:
亚音速在active record Club类中很好地创建了一个Members属性,该属性引用回Members表。但是,如果我通过Club active
我正在使用Rails 3.1和Ruby 1.9.2以及Active Admin来构建CMS。以下是我的位置和图像模型:
class Place < ActiveRecord::Base
has_one :image
accepts_nested_attributes_for :image
end
class Image < ActiveRecord::Base
belongs_to :place
end
classplace
我正在尝试从多个表中获取数据,结果出现以下错误:
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
我正在阅读一篇关于Yii框架的教程。它使用了一个我不知道其含义的术语。它是“活动记录模型”。它在数据库部分教程中使用
你能给我更多关于这个术语的解释吗?来自Yii的文档:
活动记录(AR)是一种流行的对象关系映射(ORM)技术。每个AR类表示一个数据库表(或视图),其属性表示为AR类属性,AR实例表示该表中的一行。通用CRUD操作作为AR方法实现。因此,我们可以以更面向对象的方式访问数据
例如,我们可以使用以下代码向tbl_post表插入新行:
$post=new Post;
$post->
我有两个模型用户和配置文件和用户可以有许多配置文件,每个配置文件有一个视频链接
我想写一个高效的查询,查找所有用户(创建了他们的个人资料)的列表,以及添加到他们最新个人资料中的最新视频链接
提前感谢。应该是这样的:
User.joins(:profile).pluck(:user_attribute, :profile_video_url)
根据需要修改它->
用勇气!->
向活动查询中添加条件的活动记录方式是什么
在yii1.x中,您可以像这样使用CDbCriteria
$cr = new CDbCriteria();
$cr->addNotInCondition('attribute', $array);
在Yi2活动记录实现中似乎没有等效的API调用,如何通过活动记录实现这一点?所有查询操作数现在似乎都合并到了每个文档中的yii\db\QueryInterface::Where()
现在可以使用以下内容添加In条件
$query = MyModel::
在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
我有两个模型;用户和抽奖。我还有一个连接表,其中只有一个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
例如,我决定为一个客户创建一个使用的系统,一切都进行得很顺利,直到我发现事务不起作用
TransactionScope t = new TransactionScope();
try
{
member.Save();
//This is just to see transaction working
这是在前一段时间提出的(),但似乎没有维护上面提到的Rails插件()。没有办法让ActiveRecord保持原样吗
如果没有,是否有任何方法可以在不使用ActiveRecord的情况下获取ActiveRecord验证规则
当然,ActiveRecord希望表存在。验证只是ActiveRecord中的一个模块。您是否尝试过将它们混合到您的非ActiveRecord模型中
class MyModel
include ActiveRecord::Validations
# ...
end
我有这样的情况:
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
我有一个组织模型(嵌套集)。我为人们树立了一个榜样。一个人可以有另一个人作为代理人。一个组织由一个人拥有。一个组织只对拥有者或其副手可见
我希望检索给定人员可见的所有组织,即该人员拥有的所有组织或由人员拥有的所有组织(给定人员是其代理人):
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)
本文讨论了使用动态DAO而不是activerecord。在静态类型语言的上下文中,“动态”DAO到底是什么意思?这只适用于VM上的静态类型语言还是编译语言?DAO和ActiveRecord都是访问数据库中数据的模式。DAO代表“数据访问对象”。以下是相关Wikipedia页面的链接,以了解更多关于各个模式的信息
ActiveRecord:
道:
注意,RubyGemActiveRecord是“活动记录”模式的一个实现,它恰好与模式同名
我必须制作一些过滤器,例如获取给定部门的人员,我想知道最好的方法
其中一些需要连接多个表
有人知道CDbCriteria和查询生成器之间的主要区别吗?我特别想知道与数据库的兼容性
我在关于查询生成器的Yii文档中发现了以下内容:
它提供了一定程度的数据库抽象,简化了到不同数据库平台的迁移
CDbCriteria对象是否也一样?更好吗?在处理Yii的(AR)抽象(通常总是这样)时,使用了CDbCriteria的概念。AR要求您已经为数据库中的各种表创建了
一种非常不同的访问数据库的方式;实际上,它
我尝试删除数据库中包含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) {
我试图在中实现这个示例
但我不确定正确的方法是什么?您是否先创建迁移,然后通过更改模型在模型中应用has-many
hospital$ rails g model Physician name:string
invoke active_record
create db/migrate/20140807183053_create_physicians.rb
create app/models/physician.rb
invoke
我正在构建一个rails应用程序,其中有模型、用户、图像和图像对。我希望每个图像对有2个图像,分别命名为:before\u image和:after\u image
因此:
用户有多个图像多对一
用户拥有多对多对图像
图像可能只有一个图像对
图像对总是有两个图像
我的一切正常,除了我不能打@image.image\u-pair。我得到:
PG::UndefinedColumn:错误:列映像\u对。映像\u id不存在
我如何设置它,以便从它的图像中获取图像对
schema.rb删除了一些不相关的
我有一个用户模型(名称、用户名、密码等)和一个客户模型,该模型与用户模型的关系为1:1,该模型用于存储(名字、姓氏、电子邮件等)
我想让客户通过注册过程创建他们的帐户,要求他们提供(名字、姓氏、电子邮件、密码等)
因此,很明显,注册过程必须首先创建一个用户帐户(使用,名字和姓氏作为名称,电子邮件作为用户名,密码)。然后可以创建客户帐户
尽管如此,如果客户以后想更改其姓名,我们必须更新用户帐户中的字段名
在Yii2中实现这一目标的最佳方法是什么??
我试图在Customer AR上重写before
我刚刚在where方法中遇到了一些相当令人惊讶的事情。当我查询类似于MyModel.where(id:'121 false')的内容时,它会在SQL中转换为id=121,即ActiveRecord似乎会删除破折号后面的内容。这似乎只有在我使用id进行查询时才会发生。有人能帮我指出这是在哪里实现的吗?谢谢。id字段可能是整数类型,因此ActiveRecord基本上通过调用以下命令将参数强制转换为整数:
'121-fake'.to_i # -> 121
好的,我正在尝试重新计算成员是独立的和活动的行数
我把问题缩小到我的模型。在我给get_where添加第二条之前,一切都很顺利
这是我的模型函数
function count_individual_active_members()
{
$query = $this->db->get_where('Membership', array('Membership_Status' => 'Active', 'Membership_cat' => 'Individual'));
我试图按照一个组织的主要地址的状态进行排序
我有一个具有属性状态的地址模型
还有一个组织,它有一个: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
我想知道是否以及如何在关联中实现混合:include和:join,以避免从数据库检索对象时不必要的往返
例如,当具有以下模型空间时:
————— ————— —————
| A | 0..1 ————— * | B | * ————— 1 | C |
————— ————— —————
在这里,我通过一个已知的标识符加载一个A的实例以显示在我的视图中,但我也想加载B和C(
我试图找出如何执行以下操作:检索给定用户的好友列表的所有活动。让我详细说明:
给定一个有很多朋友的用户,通过:friendships。用户具有活动。现在我要检索的是一个排序列表,如下所示:user.friends.activities.order('created_at DESC')。当然这不管用
我真的需要遍历所有的朋友并编译一个活动列表吗,还是Rails新手(我)缺少一个功能:-)
提前谢谢 您可以尝试以下方法:
Activity.where(:user_id => user.frie
我正在尝试连接两个表客户和贷款。所以我的模型是:
if($type == 'society'):
$this->db->select('customers.customer_id,customers.customer_name,customers.customer_address,loan.loan_amount,loan.grant_date');
$this->db->from('customers');
$this-&
我的模型代码中有奇怪的行为,
但我不确定这是我的问题还是RubyonRails的一些奇怪问题
我有一个亲戚
有很多:聊天室用户链接到聊天室用户
我定义了
甲级
def客人
chat_user#从返回的chat_user有很多
结束
结束
ive 2链接到此模型类的ChatUser记录
当我调用聊天对象A.Chat\u user->count时,每个返回2条记录
当我调用object of.guest->count return 2时,但每个循环只有一次
可能是什么问题
多谢各位
在puma服务器
我正在跟踪railscast添加一个活动记录声誉系统。()我有一件模型衬衫,我希望用户能够投票。我用以下内容更新了我的文件:
gem 'activerecord-reputation-system', require: 'reputation_system'
我运行了一个bundle安装并重新启动了服务器。现在,当我尝试创建一件新衬衫时,我收到一个通知,即即使我输入了一个名称,衬衫仍缺少一个名称,并且我无法创建一件新衬衫。一旦我移除gem并运行bundle安装,一切都会恢复正常,我就能够毫无问
我需要批量插入>100.000条记录。
DB不会创建id,我必须使用给定的UUID:
使用mymodel.new在循环中执行此操作分配ID,然后保存记录将起作用,但速度太慢(大约20分钟)
当我创建一个数组“记录”并使用mymodel.create(记录)时,我遇到了“无法批量分配id”问题。
我已经尝试了我能找到的所有解决方案:
模型的“attr_accessible:id,…”。适用于除id以外的所有人
(重新)定义“def self.attributes\u protected\u by
与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
在我的项目中,我试图通过使用with()调用关系来返回相关数据,问题是当我在未返回数据的关系中设置limit()时
到目前为止,我的代码是:
关系
public function getRequestNoteLess(){
return $this->hasMany(RequestNote::className(), ['request_id'=>'id'])
->orderBy(['is_admin'=>SORT_DESC,'id
我正在使用以下代码行生成我的表:
def index
@documentation_languages = Documentation::Language
.includes(:tags)
.select(:id, :abbreviation, :name, :version)
.order(:slug)
end
他们会叫:
SELECT "documentation_languages"."id", "documentation_languages"."abbre
我需要帮助。
我有一个Yii2的web应用程序,它一步一步地包含多个页面,可以将任何数据聚合到一个模型中。想知道如何聚合所有数据:使用多个AR模型或在一个AR模型中使用不需要的列。最好的做法是什么
比如说。我有一个“客户”ar模型。在第一步中,我有“个人信息”页面和字段:名字、姓氏等。在第二步中,我有另一组数据,如“联系信息”:电子邮件、电话等
最佳实践是什么:创建一个“客户”AR模型,其中包含所有不需要的列(电话、名字、姓氏、电子邮件),或者创建两个AR模型,其中包含所需的列,例如Custom
我正在使用CastleActiveRecord映射数据库
我有这样一个简单的数据库:
和映射代码:
组:
[ActiveRecord("[Group]")]
public class Group : ActiveRecordBase
{
private long m_ID;
private string m_GroupName;
private string m_Description;
private IList&
下面是我在辛特拉迁移的Rakefile。当我运行它时,出现了两个奇怪的错误
未初始化的常量记录器(联机ActiveRecord::Base.Logger=Logger.new(STDOUT))
无法将字符串转换为整数(在线ActiveRecord::Migrator.migrate('db/migrate'))
有人知道如何解决这些问题吗?谢谢
uninitialized constant Logger
在使用Ruby标准库之前,请将Logger类包括在内:需要“Logger”无法将字符串转换
我有两个模型,通过连接表建立关系。所以,我试图从db得到一些没有这种关系的模型。
我可以自己做。
但如何通过查询实现这一点呢?使用with或joinWith方法,并在连接表列中检查是否为NULL?创建连接的模型并将其添加到AR模型方法中:
/**
* @return ActiveQuery
*/
public function getJunctions()
{
return $this->hasMany(Junction::className(), ['someId' =>
我现在正在处理一个bug(?)几个小时,但无法修复它
这是我的代码:
if(!$this->db->get_where('merken',array('m_merken' => $brand))->count_all_results()){
$insetData = array('m_name' => $brand);
$this->db->insert('merken', $insetData);
}
$brand在此
目前我有一个订单类。每个订单有1到无穷多个项目。在运行时之前,项目数是未知的。由于active record/rails中没有字段类型的数组,如何创建可变数量的列
我能想到的唯一方法是提前指定一组票证列;但它非常缺乏灵活性和效率:
class CreateOrders < ActiveRecord::Migration
def self.up
t.integer :ticket_id, :ticket_id, :ticket_id, :ticket_id, :ticket_id
我正在尝试获取特定类型的所有派生类。在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|
我有一个模型“评论”,它是由一个模型“用户”为给定的“城市”和“部门”给出的。
在为表“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
两个表1和表2,其中表2中的id_schedule不是主键:
任务是从表2中获取日期。我有以下代码:
public function relations()
{
return array(
'scheduleTitles' => array(self::BELONGS_TO, 'ObjectScheduleTranslate', 'id'),
'scheduleDates' => array(self::BELONGS_TO, 'Objec
我尝试了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
虽然它直截了当,但它不起作用
class Company < ActiveRecord::Base
has_many :users, dependent: :destroy
end
class User < ActiveRecord::Base
belongs_to :company
end
Company.find(39).destroy()
# what I expect is to destroy all users that has company_id equal
嗨,我有下面的型号
class Tale < ActiveRecord::Base #TODO model should be created automatically based on the structure
attr_accessor :sex, :family, :me
after_initialize do
@sex = nil
@family = []
@me = []
end
before_create do
self.joined = false
true
e
如何根据我的情况更新所有记录?(我的代码无效)
$condition[]=['>','position',$old_position];
$condition[]=['如果忘记了运算符,只需尝试:
$condition = ['and',
['>', 'position', $old_position],
['<=', 'position', $new_position],
['in', 'id', $ids],
];
$condition=['和',
['
我正在尝试从连接表中删除记录。
当frequencie为2(每日)时,我使用连接表将planning\u id的与dagen\u id的连接起来。但是当通过示例将frequencuintieget更新为weekly时,我需要从连接表中删除所有那些planning\u id
这就是我迄今为止所尝试的:
public function beforeSave($insert)
{
if (parent::beforeSave($insert)) {
$
我正在使用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对这个问题有什么重要意义吗
我的代码中有一个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中将“验证前回调”添加到单个对象,而不是整个类?
在AR 2中,我喜欢这样:
module ObjExtend
def before_validation
p 'before_validation'
return super
end
end
obj.extend ObjExtend
但是它不再工作了,这是因为在rails3中,您不能再仅仅在模型中定义方法,而这些方法是以所讨论的回调命名的。
我的控制器中有以下各项:
@filt= params[:filter] || 'no_filter'
if params[:subcategory].nil? || params[:subcategory] == "null"
@resources = Resource.find_by_category(params[:category]).approved.send(@filt).page(params[:page]).per(30)
else
@resources = Resou
我有一个应用程序,它有两个需要多对多关系的模型。我最初试着使用has_和(你属于)(你属于)很多(你属于)(你属于)(你属于)很多(你属于。在网上搜索之后,我确信这不是我所需要的。所以,我换成了一个有很多通过的方法。然而,这也不起作用。我现在对这个问题感到非常困惑。我已经把它撕了很多次,并尝试了一个又一个教程,但都没有用
我试图连接的模型是Message和Author。在我最近的尝试中,我创建了一个名为Authoring的连接模型(带有相应的表)。这是我的密码:
message.rb
h
我(在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 页