Tag: rails activerecord

动态访问命名范围

如果我有3个命名范围,如 class Foo scope :test1, … scope :test2, … scope :test3, … 还有一个function def x(variable) end 其中variable是一个字符串(“test1”,“test2”或“test3”) 如何通过知道变量的值来访问命名范围? 有点像Foo.variable

在按日期分组之前修改查询中的created_at

我有这个查询,我用来抓取特定用户的购买,然后映射到一个哈希,以便它可以显示在图表中。 orders_graph = user.orders.where(:purchased_period => current_period). group(“date(created_at)”). select(“purchased_at, sum(total_price) as total_price”) (start_time.to_date..Date.today).map do |date| order = orders_by_day.detect { |order| order.created_at.in_time_zone(“#{user.time_zone}”).to_date == date } order && order.total_price.to_f || 0 但是,由于基于服务器时间的查询分组而不是用户时间(这是我想要的),图表通常是不正确的。 无论如何在分组之前(或之前)修改created_at时间?

RAILS / POSTGRESQL中的多个LIKE和AND运算符

我使用Rails 5.0.1和Postgresql作为我的数据库。 我有一个包含列的表:content包含单词。 问题:当我在找一个特定的单词时,我想看看这个单词是否包含我选择的字母(字符)。 假设我想要DB返回包含字母“a”,“b”和“c”的单词(所有这些单词,但没有特定的顺序) 我在做什么:我发现我可以使用Word.where(“content like ?”, “%a%”).where(“content like ?”, “%b%”).where(“content like ?”, “%c%”)或Word.where(“content like ? content like ? content like ?”, “%a%”, “%b%”, “%c%”)在这两种情况下即使我切换给定字母/子串的顺序它工作正常,例如。 两者都会找到“后退”,“出租车”等字样。 问题是:有没有更好/更干的方法呢? 如果想找到8个不同字母的单词怎么办? 我必须使用“喜欢的内容吗?” 8次? 是否可以将参数作为数组传递? (假设我不知道用户输入了多少个字母)

在两个表之间添加JOIN

这是我的课程: Model Organization has_many Students Model Student has_many Classes belongs_to Organization Model Class a field named : price belongs_to Student scope :top_expensive_classes, joins(:students).order(‘price DESC’) 现在我想列出十大昂贵的课程 至少我params的第一个问题是在params我有基于的params进行过滤但是我编写了这样的控制器,它不起作用,因为它认为它应该在Class模型中找到organization_id但它在Student模型中。 @results = Class.top_expensive_classes.where(organization_id: params[:id]).limit(RESULT_SET_COUNT) 所以我想知道是否有办法解决这个问题? 我想我应该在某处介绍一个新的加入? 但无法弄清楚。

Rails:为什么时间数据类型从1/1/2000开始

我有一个专栏,我只想存储时间(小时,分钟,秒)。 例如,这是一个迁移: add_column :products, :start_hour, :time 当我插入数据库时​​, start_hour始终以1/1/2000开头,例如: 2000-01-01 01:19:00 +0700 。 请解释一下为什么。

Rails复杂has_many和has_many通过

我有4个模型:抽屉,文件夹,FolderDocument和Document如下: class Drawer < ActiveRecord::Base has_many :folders #Drawer has many folders end class Folder :folder_documents, :conditions => proc { |v = nil| v ||= self.version “documents.active IS TRUE AND version = #{v}” }, :uniq => true end class FolderDocument < ActiveRecord::Base # Has a version attribute belongs_to :document belongs_to :folder end class Document :folder_documents end […]

从命令行添加has_many和belongs_to migration

我生成了两个模型,现在想要实现活动记录关联。 我有设计师和物品。 Item属于Designer,Designer有许多Items。 我的模型看起来像这样: 应用程序/模型/ item.rb的: class Item < ActiveRecord::Base belongs_to :designer validates :designer_id, presence: true end 应用程序/模型/ designer.rb: class Designer < ActiveRecord::Base has_many :items, dependent: :destroy end 即使在我运行rake db:migrate我的迁移也没有反映出新的关系。 他们展示了原始一代: class CreateDesigners < ActiveRecord::Migration def change create_table :designers do |t| t.string :name t.string :country t.string :about t.timestamps end end end class CreateItems < ActiveRecord::Migration […]

如何从Rails模型中获取属性的数据类型?

我在Rails项目中使用Postgres,我发现我需要将所有varchar数据类型更改为citext 。 我想要创建一个循环遍历所有模型及其属性的迁移,并根据需要转换它们,而不是手动执行此操作。 大多数这些模型都是空的,因此不是实例化它们的问题。 我需要找出ActiveRecord是否“知道”其相应数据库列的数据类型是什么。

如何在Rails中将现有模型与新模型相关联

我有一个“小费”模型和一个“团队”模型。 我正在尝试创建一个表单,用户将从多个游戏中选择获胜的团队。 到目前为止,用户可以选择获胜团队,并将这些ID保存为Tip模型(team_id)中的foriegn键。 但保存后,我不能去(例如)@ tip.team.name。 我需要做什么 ? 我如何关联它(虽然如果设置了foriegn键,我可以神奇地使用rails),我对rails很新。 谢谢你的帮助 ! class Tip < ActiveRecord::Base attr_accessible :user_id, :team_id, :team, :game_id, :game, :comp, :comp_id belongs_to :game belongs_to :comp belongs_to :team end class Team < ActiveRecord::Base attr_accessible :name has_many :tips end def create params['game'][0].each do |key, value| @tip = Tip.new @tip.team_id = value @tip.game_id = key @tip.save end […]

嵌套路由和CRUD操作以及Rails中的附加值

我在rails api中通过关系创建了一个has_many。 我也使用嵌套路线。 我的模特如下; class Author :comments end class Post :comments end class Comment < ActiveRecord::Base belongs_to :author belongs_to :post end 我的路线如下; Rails.application.routes.draw do namespace :api, defaults: { :format => ‘json’ } do resources :posts do resources :comments end resources :authors end end 所以我的目标是 注释是嵌套路由,以便我可以创建和显示post的注释 这里没有任何post的作者。 作者是评论所有者 我实现了概念并且几乎都在工作。 但我面临以下两个协会问题 如何在父创建时为关联表添加其他字段。 这里我的要求是在创建post时,我需要插入一个默认条目进行评论。 我的post控制器实现如下所示 def create params […]