Tag: activerecord

通过以下方式进行多对多:从Associations :: CollectionProxy到AssociationRelation

通过与客户关系密切的客户关系(通过favorites.rb)我有多对多的关系,我想知道如何将CollectionProxy转换为AssociationRelation,这样我就可以获得与用户最喜欢的所有客户的关系。 或者只是简单地说,如何在AssociationRelation中获取它们 – 不必从CollectionProxy转换。 编辑:我正在寻找的只是一个列出所有客户的关系。 我意识到我的问题不同。 我如何与所有客户建立关系? – 不是与favorite_id,user_id等的关系 – 我想要一个纯粹与客户及其行的关系。 我可以像这样找到CollectionProxy: user = User.last user.favorites # Gives me a CollectionProxy 但是我如何找到最喜欢的客户作为AssociationRelation? 楷模: user.rb: has_many :favorites, :dependent => :destroy has_many :clients, through: ‘favorites’ Client.rb has_many :favorites, :dependent => :destroy has_many :users, through: ‘favorites’ Favorite.rb belongs_to :user belongs_to :client

在rails应用程序中使用.average和rubip中的.pluck?

在我的应用程序中,我想看到我的用户的平均纸张使用重量,它注册到Heavy类。 user模型has_many :papers和paper模型belongs_to :user 这是我到目前为止所得到的: @heavy_users_testing = User.where(industry_type: ‘Heavy’).joins(:papers).where(“papers.paper_type = ‘Officepaper'”).pluck(:paper_weight) 我不知道在哪里可以使用active record .average来获取Heavy类别用户的平均Officepaper权重? 有人可以告诉我吗?

使用子级序列化和反序列化ActiveRecord模型

表格有很多条目。 要序列化表单及其使用的条目,我使用: json = @form.to_json( { :only => Form.accessible_attributes.to_a, :include => {:entries => {:only => Entry.accessible_attributes.to_a}}}) 表单和条目属性可以在JSON中修改或删除。 要反序列化我使用(但不工作): @form = @form.from_json(json) @form.save 如何使用表单一次保存条目?

Ruby on Rails:如何生成应用程序范围的序列?

我正在开发RoR 4,Oracle,PostGreSQL和MSSQL作为目标数据库。 我正在构建一个包含4个对象的层次结构,我需要通过相同的查询显示父子关系。 不容易理解,但提示是没有对象应该具有相同的ID 。 这里的问题是rails为每个对象维护一个专用序列,因此肯定会出现重复的ID。 如何创建一个序列来填充对于我的所有数据都保持唯一的unique_id字段? 谢谢你的帮助, 最好的祝福, 弗雷德

Factory Girl has_many通过validation死锁

我有一个Listing模型,其中has_many :categories, through: :categories_listings和has_many :categories_listings 。 我正在用Factory Girl工厂测试它,看起来像这样: factory :listing do |f| f.sequence (:title) { |n| “Listing #{n}” } message {Faker::Lorem.paragraph} cards {[FactoryGirl.create(:card)]} categories {[FactoryGirl.create(:category)]} association :delivery_condition association :unit_of_measure quantity 1 unit_price 1 end 在我向模型添加以下validation之前,一切正常: validate :has_categories? def has_categories? if self.categories_listings.blank? errors.add :base, “You have to add at least one category” end end 现在每当我经营工厂时,我得到: ActiveRecord::RecordInvalid: […]

如何使用迁移文件向Rails中的表中的列添加数据库级别唯一约束?

如何使用其迁移向Rails中的表中的列添加数据库级别唯一约束? 我用谷歌搜索,但这些答案似乎涉及索引,我不想触摸索引,因为我不确定它是否会产生不良副作用(因为stackoverflow.com/a/3370333/6359753有评论说它会有存储影响)。 我必须拥有它并且会产生不良副作用吗? 这就是为什么即使我已经阅读了一个迁移来为列的组合添加唯一约束但仍然在问这个问题。

与自身可选的has_one关联的范围

我有一个模型缩进。 我正在使用STI。 缩进可以是两种类型的销售和购买。 在购买类中,我使用可选的has_one关联。 class Purchase ‘Sale’, :foreign_key => ‘linked_indent_id’ # Make it work. scope :unsold, lambda {includes(:sale).where(‘id not in (select distinct linked_indent_id from indents)’)} end class Sale ‘Purchase’, :foreign_key => ‘linked_indent_id’ end 我只需要购买类的范围,我可以使用该范围找到所有未与销售相关联的购买。 我使用Rails 3.2和Postgres作为数据库。 更新: 生成的查询如下。 SELECT “indents”.* FROM “indents” WHERE “indents”.”type” IN (‘Purchase’) AND (id not in (select distinct linked_indent_id from indents)) […]

Rails:在模型上链接filter方法

我的网络应用程序正在显示文章列表。 文章可以在不同的国家出版(即文章属于一个国家,国家有很多文章),并且使用不同的语言(即文章属于语言,语言有很多文章)。 我想做的是提出请求,从选定的国家和选定的语言返回我的文章。 也就是说,我最终会提出这样的请求: Article.selected_countries.selected_languages 并获得文章列表。 对于国家和语言,前端都可以发送以下参数: “all” – 这意味着,有效地,不应用此filter,并返回所有国家/地区的文章(或所有语言的文章); id的数组 – 这意味着,只返回来自提供id的国家的文章(或者提供id的语言) 空数组 – 我想,这是前一个选项的一个特例; 这意味着必须退回来自任何国家(或没有语言)的文章,因此不会退回任何文章 现在,令我困惑的是如何编写这些类方法以及如何使它们可链接。 Rails指南提供以下示例: class Article < ActiveRecord::Base def self.created_before(time) where("created_at < ?", time) end end 如果我基于这个例子构建一个类方法,如下所示: def self.selected_countries(parameter) ??? end 如果parameter可以是字符串“all”,id的数组或空数组,我如何定义此方法? 另外,如果参数为“all”,如何确保filter不执行任何操作?

Rails应用程序中的嵌套表单错误

与此问题相关的模型:用户,朋友,兴趣,person_interest。 Person_interest是多态的,可以存储属于用户或朋友的兴趣。 兴趣预先填充大约。 30个利益。 当用户注册时,他们被要求选择自己的兴趣,然后在表单中输入他们的朋友姓名,选择该人的兴趣。 尝试使用 :check_boxes, :label => false %>来实现此目的 但得到以下错误: NoMethodError in User_steps#show Showing /Users/nelsonkeating/Desktop/ReminDeal/app/views/user_steps/show.html.erb where line #30 raised: undefined method `to_i’ for []:ActiveRecord::Relation Extracted source (around line #30): 27: :end_year => Date.today.year – 12, 28: :order => [:month, :day, :year ] %> 29: [‘male’,’female’] %> 30: :check_boxes, :label => false %> 31: […]

在Rails Postgres中使用JSONB数据类型的查询

如何查询具有空的appointment_id的slot_details的日程表。 这是一个示例数据集: id: 98, consulting_location_doctor_id: 498, schedule_date: Thu, 15 Jan 2015 00:00:00 IST +05:30, slot_details: [{“end”=>”2015-01-15T15:00:00.000+00:00”, “start”=>”2015-01-15T14:30:00.000+00:00”, “title”=>” 2:30 pm to 3:00 pm”, appointment_id: “”}, {“end”=>”2015-01-15T15:30:00.000+00:00”, “start”=>”2015-01-15T15:00:00.000+00:00”, “title”=>” 3:00 pm to 3:30 pm”, appointment_id: “”}, {“end”=>”2015-01-15T16:00:00.000+00:00”, “start”=>”2015-01-15T15:30:00.000+00:00”, “title”=>” 3:30 pm to 4:00 pm”, appointment_id: “”}, {“end”=>”2015-01-15T16:30:00.000+00:00”, “start”=>”2015-01-15T16:00:00.000+00:00”, “title”=>” 4:00 pm to 4:30 pm”, appointment_id: “”}, […]