我有三个表--、Label& IssuesLabel
issues.rb
class Issue < ActiveRecord::Base
has_and_belongs_to_many :labels
end
labels.rb
class Label < ActiveRecord::Base
has_and_belongs_to_many :issues
end
issues_label.rb
class IssuesLabel < ActiveRecord::Base
belongs_to :issue
belongs_to :label
end
class Chair < ActiveRecord::Base
has_many :buildings, :as => :faculty
end
class Department < ActiveRecord::Base
has_many :buildings, :as => :faculty
end
class Building < ActiveRecord::Base
belongs_to :faculty, :polymorphic => true
end
在routes文件中,我有:
resources :departments d
下面是设置,我有三个类:帖子、用户和图像。用户有帖子,用户有图像。帖子也有图片,但也只有属于他们的用户的图片。多个帖子可以有相同的图像,多个图像可以属于一个帖子。一个帖子不可能有图像,并且图片不一定需要属于一个帖子。考虑到所有这些,我想出了一个数据库结构:
User.rb:
class User < ActiveRecord::Base
has_many :posts, dependent: :destroy
has_many :images, dependent: :destroy
end
Post.rb:
class Post < ActiveRecord::Base
我试图建立一个“通用模型”,这样它就可以连接到任何数据库的任何表。首先,我创建了这个类,它连接到另一个指定的数据库(不使用模式)。
Db
class Db < ActiveRecord::Base
self.abstract_class = true
attr_accessor :error
def initialize(item = nil)
@error = ""
connect
super
end
def connect
could_connect = t
Im试图从一个列中获取一个不同值的列表,同时在另一个表上通过内部连接获取键列数据,因为below..table a和表b持有客户端的键列。表b保存列产品,该产品具有一系列针对客户端编号的值。
表a只容纳客户号码
表b保存客户号码和产品。
Client product
1. A
1. B
2. B
3. C
我想找到客户端在表a和表b中的不同产品值的列表,欢迎您提出任何建议。
在一个表中查找不在另一个表中的记录时,NOT EXISTS或LEFT OUTER JOIN...IS NULL是否更有效?具体来说,我试图找出以下两个查询中哪一个更好:
SELECT table1.id FROM table1 WHERE table1.a='FOO' AND
NOT EXISTS (SELECT 1 FROM table2 WHERE table1.id = table2.id);
或
SELECT table1.id FROM table1 LEFT OUTER JOIN table2
ON table1.id = table2.id WHERE tab
偶尔,我们在使用PG::UndefinedTable时得到ActiveRecord错误。关联表名是某种程度上的损坏,我经常看到Cancelled被附加到表名的末尾。
例如:
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "fooCancell" does not exist
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "Cancelled" does not exist
Act