草庐IT

activerecord-relation

全部标签

mysql - ActiveRecord::Base.connection.execute 受影响的行

使用Rails4.1.1,使用mysql2适配器:我正在使用ActiveRecordconnection在MySQL表中执行多次插入:ActiveRecord::Base.connection.execute%Q{INSERTINTOtable(`user_id`,`item_id`)SELECT1,idFROMitemsWHEREitems.conditionISNOTNULL}这工作正常,完成工作,并返回nil。有没有办法获取受影响的行数?(避免需要执行另一个查询)我找到了execute的文档方法有点稀疏。 最佳答案 您可以使用

mysql - ActiveRecord:查询列不在数组中的位置

ActiveRecord有一个非常简洁的语法来查询列等于给定数组中的任何值的记录:举个简单的例子,假设您有10个产品,其ID为1,2,3,4,5,6,7,8,9,10。Product.where(id:[2,3,4,5,6])将返回产品2、3、4、5和6。是否有一个ActiveRecord等价于查询列不等于数组中的任何值的产品?类似于:Product.where('id!=?',[2,3,4,5,6])除了它确实有效...在这种情况下,当您传递[2,3,4,5,6]时,它将返回产品1、7、8、9和10。编辑我需要一个Rails3解决方案!!! 最佳答案

mysql - ActiveRecord::StatementInvalid: Mysql2::Error: 无法删除或更新父行 - Rails 4.2.6

需要解决的错误:ActiveRecord::StatementInvalid:Mysql2::Error:Cannotdeleteorupdateaparentrow:aforeignkeyconstraintfails(slap_chat_development.chatrooms,CONSTRAINTfk_rails_496733c195FOREIGNKEY(group_id)REFERENCESgroups(id)):DELETEFROMgroupsWHEREgroups.id=1问题是:谁能指导我应该从哪里修复这个错误。据我所知,groups和chatrooms表之间的关系仍然

mysql - 1 :1 relation 中的双向外键约束

我正在使用MySQL数据库。在我的关系数据模型中,我有两个彼此1:1相关的实体。在我的架构中,通过将FK字段放在两个表之一中来建立1:1关系,该字段与另一个表的PK相关。两个表都有PK,它们都是自动递增的BIGINT。我想知道是否有可能对它们进行ONDELETECASCADE行为以双向工作。即A1:1B,即【删除A也删除B】以及【删除B也删除A】。我意识到,就正确的应用程序设计而言,这可能不是绝对必要的,但我只是想知道这是否真的可行。据我所知,您不能对PK施加FK约束。 最佳答案 如果强制执行双向关系,则不可能插入此类记录。鸡和蛋。

mysql - Doctrine 2 : Use default 0 values instead of null for relation

对于Doctrine2的关系(多对一、一对一)是否可以使用值0而不是null?现在我有很多NOTNULL列,但我可能不会更改为空值。将MySQL中的默认值更改为0本身并不是解决方案,因为Doctrine总是设置用于插入/更新行的列。 最佳答案 不,这是不可能的。NULL在SQL中有非常特殊的含义。它代表“没有值(value)”,你可以验证你的逻辑即使在SQL级别也不会工作:CREATETABLEfoo(`id`INT(11)PRIMARYKEYAUTO_INCREMENT,`bar_id`INT(11));CREATETABLE`b

mysql - 从字段中剥离空格后,Ruby/ActiveRecord 未检测到更改

我正在尝试使用mysql2适配器和ActiveRecord从MySQL数据库的各个字段中删除空格和回车符:ruby1.9.3p194事件记录3.2.8MySQL5.5.28foo=People.find(1)foo.name=>"\rJohnJones"foo.name.lstrip!=>"JohnJones"foo.name=>"JohnJones"foo.changes=>{}#nochangesdetectedtofoo.name???foo.save=>true#butdoesnothingtodatabase.如果我这样做:foo.name="JohnJones"foo.sa

mysql - #<ActiveRecord::ConnectionAdapters::MysqlAdapter 的未定义方法 `explain'

我是RubyonRails的新手,但我已经学习了一些教程并且对自己的方法有了一些了解。我已经生成了一些脚手架并将数据插入到MySql数据库中。导航到index.html.erb时,我收到标题中的错误Controller正在执行索引defindex@beers=Beer.allrespond_todo|format|format.html#index.html.erbformat.json{render:json=>@beers}endend并将其作为结构Beer:id,brewer_id,name,price,score,color,brew_type,create_at,update

mysql - ActiveRecord/Rails 中的多列外键/关联

我有徽章(有点像StackOverflow)。它们中的一些可以附加到可标记的东西上(例如,一个帖子的>X评论的徽章附加到帖子上)。几乎所有都有多个等级(例如>20、>100、>200),并且每个badgeablex徽章类型只能有一个等级(=badgeset_id)。为了更容易地执行每个徽章一个级别的约束,我希望徽章通过两列外键指定它们的徽章-badgeset_id和level-而不是通过主键(badge_id),尽管徽章也有一个标准的主键。在代码中:classBadge:destroy#integer:badgeset_id,levelvalidates_uniqueness_of:b

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)更新:在我发布这个问题之后,服务器又开始

javascript - Sequelize : Check and add BelongsToMany (N to N) relation

我的应用程序有许多用户,他们可以喜欢很多帖子(N到N)。这就是为什么我为我的模型(SequelizeDoc)分配了以下“belongsToMany”关系://PostModelmodels.Post.belongsToMany(models.User,{through:models.PostLikes});//UserModelmodels.User.belongsToMany(models.Post,{through:models.PostLikes});在我的PostController中,我得到了“likePost”函数的以下用例:检查帖子是否存在。(似乎有效)如果是,请检查用户