我尝试使用亚音速3 ActiveRecord在MySQL数据库中增加一个字段。在SQL中,我追求的是:
UPDATE people SET messages_received=messages_received+1 WHERE people_id=@id_to;
我尝试了以下方法,但似乎不起作用(您收到的消息似乎总是1):
所以我有了一个解决方案,但我只是想知道是否有可能不用简单的SQL就能做到这一点
回答。供参考,根据Rob的以下建议:
_db.Update<person>()
我有一个属于用户和故事的评论模型。创建正确关联到适当用户和故事的注释工作正常,但在尝试编辑注释时,我的编辑操作似乎检索到了错误的记录
comments_controller.rb中的违规行为:
def edit
@story = Story.find_by(params[:story_id])
@comment = @story.comments.find_by(params[:id])
end
用于呈现注释/编辑视图的链接:
<%= link_to 'edit', edit_s
我有三门课:
class Batch
has_many :final_grade_batches
end
class FinalGradeBatch
belongs_to :batch
belongs_to :student
end
class Student
has_many :final_grade_batches
end
我想通过以下方式检索final\u grade\u批次:
batch = Batch.includes(:final_grade_batches).
当然,我可以Yii::$app->db->createCommand($sql)->query(),
但是如果我想使用一个ActiveRecord::find()->where($conditions)来做这个工作呢?您可以使用类,您的$conditions将是('id%2=1')您也可以使用活动查询来实现这一点。这可能会有所帮助
$customers = Customer::find()
->select(['id', 'name', ...])
->where('
我需要选择具有与特定列值相关的AR的ActiveRecord
情况:“用户”可能有许多“分支”-通过连接表,分支与部门相关。我有department\u id,我想选择从这个部门拥有分支机构的用户
部门:
... $this->hasMany(Branch::className(), ['department_id' => 'id']);
分支机构:
... $this->hasMany(User::className(), ['id' => 'user_id'])
我有一个葡萄api,我想保存嵌套数据
我有一个这样的模型:
class Vehicule < ActiveRecord::Base
before_validation :set_principal, :if =>:new_record?
belongs_to :user
accepts_nested_attributes_for :user
end
这是我的测试文件
test "PUT /api/v1/vehicules/1" do
put("/api/v1/ve
在控制器逻辑中,我们必须为一个特殊的对象类(它是许多对象的汇编)创建几个列别名:
问题是,在尝试搜索时,搜索将忽略别名,并尝试转到原始的table.column\u name。搜查后的SQL:
“选择CONCAT_WS('
,users.first_name,users.middle_name,users.last_name)由,
计数(NULLIF(is_complete=false,true))作为完整计数,
计数(staff_assessment.id)为员工计数,
员工(评估)(组别)
我有一个基于Yii2的web项目。最近我为它编写了一些RESTAPI。
我意识到,每个RESTAPI调用都有很长的响应时间。
1134ms、1250ms、1034ms等,因此平均响应时间基本上在1秒以上
客户机模型没有关系(客户机表是“独立”表)
我的测试表(客户端)包含173条记录(一行有10列)。我调试了问题并标记了相关行:
...
$client_id = Yii::$app->request->post('client_id');
// client
我做过很多CodeIgniter项目,我只使用了$this->db->query,没有使用任何其他方法
人们说,当我们改变数据库时,使用它会变得复杂
所以人们使用db->get,db->where和类似的函数,包括join
例如,我现在使用mysql,在我的项目中使用$this->db->query,如果我将我的数据库更改为其他数据库。。。这会是个问题吗
此外,我们应该在开始项目之前非常清楚地选择数据库,这将是一个很好的实践,人们知道这一点。。。此外这个
如果我们在CodeIgniter项目中只
这个想法很简单。我需要一个嵌套属性标记,用于用户注册标签需要用户id
视图
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: {role: :form}) do |f| %>
<%= f.fields_for :tags, resource.tags.build do |a| %>
<%= a.text_field :tagname
我希望能够查询
class Book
belongs_to :library
end
class Library
belongs_to :city
has_many :books
end
class City
has_many :libraries
has_many :books, through: :library
end
如何使用ActiveRecord正确地做到这一点?您的城市模型已经有许多图书通过图书馆,所以我相信
Book.where("library.cit
我有一个表,其中包含两个外键对一个主键的关系:
public function getFromUser()
{
return $this->hasOne(User::className(), ['id' => 'from_user_id']);
}
public function getToUser()
{
return $this->hasOne(User::className(), ['id' => 'to_user_id']);
}
我必须这么做
我遇到了一个问题,关于在一个批次中插入多行,使用Subsonic3。我的开发环境包括:
1. Visual Studio 2010, but use .NET 3.5
2. Active Record Mode in SubSonic 3.0.0.4
3. SQL Server 2005 express
4. Northwind sample database
我正在使用主动记录模式将多个产品插入表产品。如果我一行一行地插入行,可以调用一个product.Add或调用insert.Execut
目前我正在尝试开发一个插件/gem,它可以观察多个模型。理想情况下,观察者应该只使用一个单例方法自动实例化
class MyModel < ActiveRecord::Base
# a class method like this will tell the observer to observe this model
observe_me
end
然后使用它来检测要在观察者中观察的模型:
class MyObserver < ActiveRecord::Obser
我需要得到的记录不在:通过条件
我有三张桌子:
class A < ActiveRecord::Base
has_many :B_A
has_many :B, through: :B_A
end
class B < ActiveRecord::Base
has_many :B_A
has_many :A, through: :B_A
end
class BA < ActiveRecord::Base
belongs_to :A
belongs_to :B
我需要在Yii中插入多个ActiveRecord对象(如果所有对象都已插入)
$transaction = Yii::app()->db->beginTransaction();
for ($i = 0;$i < 10;$i++){
$model = new Mymodel();
$model->x = $i;
if (!$model->save()){
$transaction->rollback();
我对Rails还很陌生,所以要温柔:)
我有以下模型设置:
class User
has_many :it_certificates, :class_name => 'UserCertificate'
class UserCertificate
belongs_to :skill
给定以下输入(JSON)
更新关系it\U证书信息的最简单方法是什么
我一直想更新_all,但它不符合我的需要(它只更新具有相同值的给定字段)
因此,我一直在努力尝试迭代每个记录,然后逐个更新它们
我注意到还有许多其他类似的问题,但我的背景似乎不同
错误
以下是我在尝试运行/重新启动Rails应用程序Redmine时遇到的错误。Redmine运行正常,但共享主机进行了一些服务器更新,因此出现了这些问题
mysql2列在gem/bundle列表中。mysql2.so存在于它要查找的位置,并且具有所需的可执行权限。感谢您对解决此问题提出的任何建议
环境
问题的答案解决了我的问题
gem uninstall mysql2
bundle install
# ruby -v
ruby 1.9.3p
如何在搜索时将CActiveDataProvider中的运行时查询作为输出
期望输出如
从用户名为xxx和电子邮件为xxx的用户列表中选择*test@in.com';
我怎么能
在我的模型中
public function search() {
$criteria=new CDbCriteria;
$criteria->compare('username',$this->username,true);
$criteria-&g
我有三个数据库表:
产品(id、名称)
产品具有高级(产品、优势、分类、重要)
优势(id、文本)
在ProductModel中,我定义了以下内容:
public function getAdvantages()
{
return $this->hasMany(AdvantageModel::className(), ['id' => 'advantage'])
->viaTable('product_has_advantage'
我尝试使用左联接发送SQL请求,但它不显示表2中的数据
似乎您正在将此函数添加到模型中,并且self表示模型本身
Yii不会从另一个表返回结果,仅当您在模型上调用find时,Yii才会限于该模型,相反,您需要使用db查询,如下所示:
$query = new \yii\db\Query;
$query->select('*')
->from('table 1 g1')
->leftJoin('table2 s1',
如何在Yii2中获取属性标签
我在Yii2文档中找到了这个函数getAttributeLabel(),我正在控制器中使用它。但它抛出了一个错误:
调用未定义的函数app\controllers\getAttributeLabel()试试这个
$model = new ModelName();
print_r($model->attributeLabels());
如果您使用上述代码,您可以得到一个数组,其中包含模型的所有属性标签,因为Yii 2.0.13Active
要在yii2中查找记录,我使用以下代码:
$response = Response::findOne(['unique_url' => $unique_url]);
但无论大小写如何,它都会返回记录。
如何区分大小写?我认为你应该像二进制一样使用
为此,您应该扩展modelSearch,在查询条件中添加子句
public function search($params)
{
$query = YuorModel::find();
.......
...
用yii2活动记录进行一些测试。
它不想在表中插入数据。它只需插入null's
请给我一些建议
表:
CREATE TABLE projects (
p_id int(11) NOT NULL AUTO_INCREMENT,
p_name varchar(50) DEFAULT NULL,
p_create_date datetime DEFAULT NULL,
p_last_update datetime DEFAULT NULL,
p_active tinyint(4)
我试图理解如何在Django ReST Framework(DRF)应用程序中最好地将API的资源与关系数据库模型解耦
一个小例子:考虑博客帖子模型,每个帖子可以用一个或多个标签来标记:
class Post(models.Model):
text = models.TextField(...)
tags = models.ManyToManyField(Tag, related_name='tags')
class Tag(models.Model):
tagname =
我有一个模特。
如何在保存后识别正在更新、插入或删除的Yii模型($model->save()| |$model->delete())?,您可以检查模型是否将被保存或更新。使用($model->save()||$model->delete())您无法直接确定发生了什么。如果$model->save()未成功,则是由于验证错误$model->delete()将被调用。如果删除成功,则为1(即true)
我不知道你为什么会有这种说法,但是如果你因为某种原因不能改变它,并且想知道发生了什么,你可以使用
鉴于以下情况:
类客户
字符串名
结束
阶级秩序
整数
结束
我正在创建订单列表。对于列出的每个订单,我希望显示关联的客户名称。有没有办法通过对象图实现这一点,或者我必须手动查找它
克里斯如果存在亲子关系,亚音速公司将予以尊重,然后:
for each o as Order in orders
Console.WriteLine(o.Customers(0).name)
next
我使用过许多SQL抽象库,如ODBC、JDBC和ActiveRecord。NoSQL/键值存储世界中的抽象选项是什么
我主要是这样问的,如果我选择一个键值存储,那么我就可以使用一个抽象库而不被锁定,考虑到周围键值存储的数量,这一点很重要。不。现在,NoSql数据库非常不同,因此,它们不能被包装在一个标准接口下,同时保持非平凡。我们在存储接口中有这样一个抽象。它非常简单,但正是为了这个目的而创建的:一个公共API,它允许InfoGrid与不同的键值存储实现进行对话,而不需要在更高级别上进行更改
一
我在rails 3应用程序中实现了以下范围:
scope :popular, lambda { |l = 5| order('views desc').limit(l) }
然而,当您试图直接计算它的记录时,它似乎没有应用范围过滤器
例如:
Post.popular.size #=> 20
检查日志后,它将执行以下查询:
SQL (0.4ms) SELECT COUNT(*) AS count_id FROM `posts` LIMIT 5
现在如果我执行
Post.popular
所以我今天遇到了一段有趣的代码,它引起了我的注意。我认为这是不可能的。代码行是:
@post.comments.approved_comments
看起来不错,对吧?但是真正发生的事情是,approved\u comments方法在数组对象的实例上被调用,该对象由具有多个关系(即,帖子有多个注释)返回。更有趣的是,approved\u comments是在Comment模型上定义的类方法
让我有点困惑的是,我认为不能将关系链接起来,至少不能直接链接,因为关系返回的是Array,而不是Activ
我在heroku测试、舞台和制作中有3个rails应用程序实例。当我想测试真实用户数据中出现的问题时,我想先测试heroku db:pull-app production,然后测试heroku db:push-app。问题是,此时heroku rake db:migrate-app test抛出一个错误,因为迁移尝试创建的列已经创建
我的理解是herokudb:push将数据推送到现有的数据库模式中,而不是直接推送到包含的整个数据库模式中。这意味着我们正在推送的模式可能比我们正在推送的迁移表更高
我有一个用户对象,它与地址对象有一对多的关系。我的班级看起来像这样
class User
has_many :address
end
class Address
belongs_to :user
end
@user.address.each do |a|
a.city = 'Alabama'
end
@user.save
我只想为特定用户更新地址表中的城市列。
如何做到这一点
我试过这样做
class User
has_many :address
end
class Ad
我想使用Ruby core中的Timeout来超时ActiveRecord查询,但是ActiveRecord似乎正在捕获Timeout::Error,并将其包装在ActiveRecord::StatementInvalid异常中
> Timeout::timeout(3) { sleep 4000 }
Timeout::Error: execution expired
...
> Timeout::timeout(3) { ActiveRecord::Base.connection
我想在没有Rails的项目中使用ActiveRecord。
我还想像Rails一样在config/database.yml中指定数据库连接
对于多个数据库连接如何使用Rails,已经有一个答案。
我使用这种方法是不成功的,我不知道为什么。我只收到错误消息“数据库配置未指定适配器”
Rails中是否存在读取不在ActiveRecord中的database.yml的魔力?
我可以自己读,但我不知道如何将它提供给ActiveRecord,以便在每个模型中使用“建立连接”。我了解了它的工作原理。只需填
CDbCommand无法执行SQL语句:SQLSTATE[42000]:
语法错误或访问冲突:1066非唯一表/别名:“用户”。
执行的SQL语句是:选择tid作为t0\u c0,t`grn
请帮助我解决此问题…您应该为以下任一(或两者)关系指定别名:
$criteria->with = array(
"invoice.user" => array('select' => 'display_name'),
"gr
有人知道Kaminari gem是否能与继承的资源一起工作,因为我试图保持代码的干性,不想重复我自己
计划是,使用一个部分呈现3个不同的表,即错误表、消息表和订阅者表。但是,因为我使用的是继承的资源,所以我需要在errors控制器、messages控制器和subscribers控制器中使用的所有代码通过Admin应用程序控制器
我希望这对任何阅读本文的人都有意义
这是我的密码:
管理应用程序控制器
class Admin::ApplicationController < Inherited
我有一个记录事故的数据库。每次事故都可能有多种原因。每个原因在第三个表中都有一个友好的名称。创建此关联的“rails方式”是什么
以下是我所拥有的:
create_table "accidents", force: true do |t|
t.text "notes"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "causes", force: true do |t|
t.intege
我有以下资料:
class ObjectA < ActiveRecord::Base
has_one :object_b
end
class ObjectB < ActiveRecord::Base
belongs_to :object_a
has_one :object_c
end
class ObjectC < ActiveRecord::Base
belongs_to :object_b
end
class ObjectA
我已经能够使用CodeIgniter的db->query使此代码正常工作,如下所示:
$sql =
'SELECT mapping_code,zone_name,installation_name
FROM installations,appearances,zones
WHERE
installations.installation_id = zones.installation_fk_id
AND appearances.installation_fk_id =
我有一个接受嵌套模型,并且我已经设置了表单来将值发送到db。但是在数据库中存储记录时,activerecord忽略了一个名为“deactivated_by”的列
下面是允许接受嵌套的控制器代码-列deactivated\u by在其中
# Never trust parameters from the scary internet, only allow the white list through.
def customer_params
params.require(:customer)
我正在使用扩展,它有一个与GalleryPhotos模型(Gallery_photo.Gallery_id FK to Gallery.id)的一对多关系连接的Gallery模型
我有一个产品模型,我想加入一对一关系的画廊模型
如果我不想修改Gallery表(添加FK),我将如何定义这种关系。
我考虑的一个选项是在我的产品表中添加一个gallery\u id字段,该字段将指向gallery->id,但我如何定义产品模型文件中的关系
如果我不想修改,我将如何定义这种关系
库表(用于添加FK)。我考
我有一个相当简单的ActiveRecords关联,比如(特别是在Rails 4中):
一个组织有许多用户
用户属于某个组织
但是对于ActiveReoRecord查询,构建一个查询来返回一个组织数组(每个组织都有自己的用户ID数组)的最佳方法是什么?基本上,我想返回以下数据结构:
#<ActiveRecord::Relation [#<Organization id: 1, name: "org name",.... user_ids: [1,2,3]>, <Orga
我使用warbler从我的jRuby项目生成JAR文件。
当我在jRuby中运行代码时,就像
jRuby.exe -S test_jdbc.rb
一切正常。
当我启动它并得到test_jdbc.jar文件时,我在运行jar时遇到了一个错误
产生错误的代码是
#table is in other scheme than the connected scheme so, i have to use both the scheme and the tablename
class Ondon <
我的模型中的行为函数如下
public function behaviors()
{
return [
'timestamp' => [
'class' => 'yii\behaviors\TimestampBehavior',
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['log_in_time' ],
我正在寻找一种解决方案,通过活动记录在单个查询中获取分层数据
我现在做的是首先获取所有数据,然后使用递归函数将数组转换为所需的数组
$allUsers = User::find()
->asArray()
->all();
$arr = Yii::$app->TreeComponent->getUserChildren($allUsers, $userId, $userId);
和在树组件中
public function getUser
请解释一下如何在FindAll函数中使用expersion.Or()
例如,我有两个条件-Expression.Like(“Text”、“%coolstuff%”)和
表达式.Eq(“来自互联网”,假)
如何通过“或”?将它们一起使用尝试以下方法:
// ...
Expression.Or(
Expression.Like("text", "%arbitrary%"),
Expression.Eq("FromInternet", false)
)
// ...
试试这个:
// ...
我想使用CodeIgniter活动记录类实现一个sql查询。查询如下所示
INSERT california_authors (au_id, au_lname, au_fname)
SELECT au_id, au_lname, au_fname
FROM authors
WHERE State = 'CA'
在CodeIgniter中,不使用$this->db->query方法是否可以实现这一点
解决方案:
$this->db->select('au_id, au_lname,
我有一个用户对象和一个联盟对象,其中用户有多个:联盟,联盟属于:用户。我希望获得用户列表,但排除当前用户已经与之有活动联盟的用户(如果用户已经有联盟,则:pending字段将为false)
这里有一个具体的例子。假设我们的用户是乔、鲍勃和吉尔。乔和吉尔是积极的盟友,所以乔。联盟将包括吉尔,吉尔,联盟将包括乔。我想要一个为当前用户排除联盟的所有用户的列表,因此如果Joe是当前用户,那么我想要一个不包含Jill但包含Bob的用户对象数组
在代码中,我到目前为止所拥有的:
# Get all user
是否可以对所属关系进行关联扩展
我曾尝试使用一个模块进行此操作,但一直被告知我调用的方法是私有的:
module TestExtension
def test
puts 'test successful'
end
end
class Question < ActiveRecord::Base
belongs_to :user, extend: TestExtension
end
我不是100%清楚是否有可能在您所属的服务器上进行AR扩展。它在Rails 3.0.7上
标签: Activerecord
associationsrails-activerecordhas-manybelongs-to
我在rails 3.0上,试图找出建立归属关系的正确方法:通过关系(我知道这是不可能的)。下面是一个例子:
class ParentCompany < ActiveRecord::Base
has_many :subsidiaries
has_many :employees, :through => :subsidiaries
end
class Subsidiary < ActiveRecord::Base
belongs_to :parent_company
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 20 页