我有两个使用people表的模型:Person和Person::Employee(继承自Person)。people表有一个type列。还有另一种模型,Group,它有一个名为:owner的多态关联。groups表有一个owner_id列和一个owner_type列。app/models/person.rb:classPersonapp/models/person/employee.rb:classPerson::Employeeapp/models/group.rb:classGroup问题是,当我使用以下代码创建Person::Employee时,owner_type列设置为不正确
我正在使用rails4.2.0-这是我的模型:classCustomer{includes:contracts}endclassMeter现在,我想显示一个客户的所有契约(Contract)。根据RailsGuides我应该能够做到这一点:@customer.meters.contracts但是,它不起作用。这是错误消息:undefinedmethod`contracts'for#在这种情况下最好的方法是什么?感谢您的帮助! 最佳答案 在您的示例中,每个模型类仅代表数据库记录的这些实例之一,即您的Meter类仅代表中的一个meter
我对mongoid和rails很陌生。所以我在使树结构工作时遇到了一些麻烦:我找到了三个要构建的“解决方案”mongoid-tree(这是最实际的)https://github.com/benedikt/mongoid-tree和mongoid提供的解决方案recursively_embeds_moremongoid_acts_as_treehttps://github.com/saks/mongoid_acts_as_tree我的目标是制作一棵可以在不同模型中引用/嵌入的音乐风格树。-房子---科技之家---最小的房子-民间---非洲人---亚洲人-金属---重金属---死亡金属..
一直在研究Rails,在学习Hartl的教程时,我被要求做一个项目。我认为这是偏离路径的好机会,尽管我还不够了解;)因此我遇到了一些问题。我有两个模型:Foo,其中有参数名称和has_manyFooStatusFooStatus,它有参数Foo.name和content,belongs_toFooHartl的教程使用您登录的帐户,因此@foo参数已经绑定(bind)并且foo.id将随时可供使用。通过身份验证后,用户可以为任何Foo创建状态.在我的HTTP请求中,我试图发送foo.name和foostatus.content并将该信息保存到我的数据库中。我的问题:这些模型是否会在数据库
TL;DR:我不知道如何组织我的逻辑域类。我有模型“应用程序”,这个模型是应用程序的“核心”,是我“进入”和操作其他模型的方式,例如:@application=Application.find(params[:application_id])@application.payment.update_attribute'active',true或unless@application.report.status或@application.set_income(params[:income][:new_income])所以模型Payment、Income和Report基本上是空的,因为我初始化
我有以下模型:classProperty{where('properties.idNOTIN(SELECTDISTINCT(property_id)FROMphotos)')}endclassPhoto我知道我的范围真的很低效。我需要另一种方法来获取没有任何照片关联的属性。有什么帮助吗? 最佳答案 您可以执行以下操作:classProperty类似问题:Howtoqueryamodelbasedonattributeofanothermodelwhichbelongstothefirstmodel?Railsactiverecord
我试图通过最近创建的相关记录(通信)的created_at列列出所有用户。到目前为止我所拥有的:User.includes(:communications).order('communications.created_atISNULL,communications.created_atasc')实际上,desc如我所料地工作。问题是顺序颠倒了,我尝试顺序asc。这似乎是因为用户可以有许多通信,查询返回用户的列表,顺序是第一个通信创建的顺序,而不是最近的。我如何修改查询以按asc和desc顺序定位最近创建的关联记录?谢谢你的时间。 最佳答案
我有以下关联:Artisthas_manySongs。因此,我可以通过以下方式获取艺术家的歌曲:artist.songs但是,我只想获取歌曲的流派:artist.songs.pluck(:genre)但是,这种类型可能会在结果中出现多次;我只想获得独特的流派值(value)。不幸的是,pluck在这里没有任何帮助,因为它返回一个数组,并且在其上调用uniq不会调整ActiveRecord查询,但是普通的数组#uniq.我可以这样做:artist.songs.select(:genre).uniq.pluck(:genre)但我觉得一定有更好的办法。P.S.:然而,从一些最小的基准测试来
全部!我想创建额外的has_many关系来只选择需要的列例子classPrice:city_id,:foreign_key=>:city_idhas_many:orders,:through=>:order_itemsend所以它现在可以工作了。但我想创建像:orders一样工作的关联,但有:select选项例子has_many:orders,:through=>:order_items,:select=>"price"但我不想覆盖当前的:orders协调。如何做到这一点?更新Azoto显示带有源选项的示例!没关系,但是当我在includes中使用这个accotiation时,它不起作
这应该是一个简单的查询,但我在正确使用Rails语法时遇到了问题。我正在使用Rails4.1.1和Postgresql(9.3)。我有一个模型用户和模型公司。User有一个公司,Company有很多用户。我试图找到所有拥有5个以上用户的公司。classCompany问题类似于:Findallrecordswhichhaveacountofanassociationgreaterthanzero如果我尝试上述类似的解决方案:Company.joins(:users).group("company.id").having("count(users.id)>5")它给我一个错误:PG::Un