activerecord-postgis-adapter
全部标签 我有一个Resource模型,可以使用“ActsAsVotable”gem(Githubpage)对其进行投票。投票系统运行良好,但我试图显示按每个Resource有多少votes排序的页面。目前我的Controller根据标签提取资源并且没有排序:@resources=Resource.where(language_id:"ruby")如果我获取单个资源并调用“@resource.votes.size”,它将返回它有多少票。但是,投票是另一张表,所以我认为需要进行某种连接,但我不确定该怎么做。我需要的是一个有序的ActiveRecord集合,我可以像这样显示吗?Bookname-19
对于遗留的MySQL5.1数据库,哪种ORM最适合与新的Rails3应用程序一起使用?我不希望对这个数据库运行迁移(尽管架构可能会不时更改),但我肯定会写信给它。 最佳答案 我可能偏向于DataMapper,但我认为DM通常是与遗留数据库集成的不错选择。DM允许您映射有意义的模型和属性名称到神秘的遗产表和列的命名约定。它允许您在每个模型/属性,或应用范围的基础。DM支持惰性属性,只有在实际访问时才会获取。DM无缝支持复合主键。DM只关心您明确表示的属性(列)在你的模型中声明。其他栏目永远不会被触及或阅读。在dm-constraint
我有一个名为Name的ActiveRecord,它包含各种Languages的名称。className用一种语言查找名称很容易:Language.find(1).names.find(whatever)但我需要找到语言1和语言2具有相同名称的匹配对。在SQL中,这需要一个简单的自连接:SELECTn1.id,n2.idFROMnamesASn1,namesASn2WHEREn1.language_id=1ANDn2.language_id=2ANDn1.normalized=n2.normalizedANDn1.id!=n2.id;如何使用ActiveRecord进行这样的查询?请注意
我正在尝试根据我的Controller中的时间戳字段对我的数据进行排序,请注意时间戳字段可能为空并且可能有一些值。我写了以下查询。@item=Item.sort_by(&:item_timestamp).reverse.paginate(:page=>params[:page],:per_page=>5)但是当我有time_timestamp字段值为NULL的项目时,这会出错,但以下查询有效。@item=Item.order(:item_timestamp).reverse.paginate(:page=>params[:page],:per_page=>5)谁能说出这两个查询之间的区
我有如下表命名的问题+----+---------------------------------------------------------+----------+|id|title|category|+----+---------------------------------------------------------+----------+|89|Tinkerorworkwithyourhands?|2||54|Sketch,draw,paint?|3||53|Expressyourselfclearly?|4||77|Keepaccuraterecords?|6||3
防止将空字符串插入MySQL的InnoDB表的字段的最佳方法是什么?允许的值为包含多于零个字符或NULL的字符串。我问这个是因为ActiveRecord模型对象经常得到loadedView的表单数据不知道,因此不会发送NULL值。在这种情况下,我更希望存储NULL而不是空字符串。我应该定义规则吗?我应该实现二传手吗?使用触发器? 最佳答案 你应该简单地使用default验证器,将此规则添加到您的模型中:publicfunctionrules(){return[//...['attribute','default','value'=>
为什么Rails不在创建返回的项目中填充自动递增列?有更好的方法吗?在Rails中,当您执行a=Foo.create时,a.id会被填充但是如果你有一个通过创建的字段defupexecute"ALTERTABLEmy_tableADDCOLUMNmy_auto_incrementing_columnINTEGERAUTO_INCREMENTnotnullUNIQUEKEY;"end然后当您使用创建时,该字段不会出现。您还必须使用重新加载。a=Foo.createa.id#notnila.my_auto_incrementing_column#nila.reloada.my_auto_i
我有一个这样的数据库模型:Posthas_many:votesbelongs_to:userUserhas_many:postshas_many:votesVotebelongs_to:postbelongs_to:user我想要的是查询他尚未投票的特定用户的所有帖子。我试过这样的:Post.left_outer_joins(:votes).where.not(votes:{user_id:1})其中1只是一个示例用户ID。问题是这个查询似乎获取了所有posts,这些posts至少有一个投票,其中user_id不是1。但是因为不止一个用户会为这些帖子投票,一旦超过一票,所有用户都会立即
有什么方法可以挂接到ActiveRecord连接创建中吗?我想在刚创建连接时运行一些代码。我觉得这可能是一种在连接上设置MySQL变量的方法,因为database.yml中的“变量”似乎对我不起作用。(HowtoturnoffMySQLstrictmodeinRails) 最佳答案 ConnectionAdapter定义了两个回调函数:checkout(连接)和:checkin(断开)。您可以将它用于特定的适配器,如ActiveRecord::ConnectionAdapters::MysqlAdapter.set_callback
我有一个查询,该查询执行一些数学运算并返回带有结果集的计算自定义选择字段。我无法弄清楚如何在返回的activerecord对象中访问它。我还为它添加了一个attr_accessor。attr_accessor:percentage_usedselect('gateways.*,(num_transactions_today/SUM(num_transactions_today))ASpercentage_used').joins(:gateway_groups).where('map_gateway_groups.gateway_group_id=?',gateway_group_id