我有一个NSManagedObjectContext,其中我有许多NSManagedObjects的子类,有些是其他人的容器.我想要做的是观察一个顶级对象,通知它对任何属性,关联或它包含的任何对象的属性/关联的任何更改.
使用上下文的'hasChanges'并没有给我足够的粒度.对象'isUpdated'方法仅适用于给定对象(而不是其关联中的任何对象).是否有一个方便的(也许是基于KVO的)我可以观察上下文中仅限于子图的变化?
我正在使用带有单个"帐户"表的STI模型来保存用户和技术人员的信息(即用户<帐户,技术人员<帐户).一切都从功能的角度来看,但是在运行单元测试时会发生爆炸:
... 8)错误:test_the_truth(UserTest):ActiveRecord :: StatementInvalid:PGError:错误:关系"技术人员"不存在:删除"技术人员"......
从本质上讲,标准框架不承认技术人员和用户表(或PostgreSQL称之为"关系")不存在,实际上应该为帐户别名.
有任何想法吗?我对RoR比较陌生,我不知道怎么解决这个问题而不是一起扯掉STI.
ruby postgresql unit-testing ruby-on-rails single-table-inheritance
我有一个表foo,由'created_at'分区,主键为(id,created_at).即:
CREATE TABLE `foo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`bar_id` int(11) DEFAULT NULL,
...
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (TO_DAYS(created_at))
(PARTITION p0 VALUES LESS THAN (733712) ENGINE = InnoDB,
PARTITION p1 VALUES LESS THAN (733773) ENGINE = InnoDB,
PARTITION p2 VALUES LESS THAN (733832) ENGINE = InnoDB,
PARTITION p3 VALUES LESS THAN (733893) ENGINE = InnoDB,
...
)
Run Code Online (Sandbox Code Playgroud)
如何创建一个bar_id在所有分区中都是唯一的唯一索引?如果我尝试类似的东西:
CREATE UNIQUE INDEX …Run Code Online (Sandbox Code Playgroud) 我有很多文档看起来像这样:
foo_1 foo_2
foo_3
bar_1 foo_4 ...
Run Code Online (Sandbox Code Playgroud)
我希望通过采用所有实例foo_[X]并用它们替换它们来转换它们foo_[X+1].在这个例子中:
foo_2 foo_3
foo_4
bar_1 foo_5 ...
Run Code Online (Sandbox Code Playgroud)
我可以用gsub和一个块做到这一点吗?如果没有,最干净的方法是什么?我真的在寻找一个优雅的解决方案,因为我总是可以强迫它,但觉得有一些值得学习的正则表达式.
我有一个原始图像(比方说,1600x1200),我想创建一系列具有各种分辨率的缩略图:
单独地,我可以使用convert命令处理每个转换.问题是,不断重新初始化会浪费大量资源convert; 将事物链接起来以便convert重用其工作会更好.
使用ImageMagick 6.7.0-10我尝试了以下(使用该+write选项,请参阅http://www.imagemagick.org/script/command-line-options.php#write),但它不能用作+write命令似乎无法将图像恢复到其原始状态:
convert '/tmp/original.jpg'[0] -quality 95 -density 72x72 -resample 72x72 +profile '!xmp,*' -resize '900>' +write '/tmp/900.jpg' -resize '700>' +write '/tmp/700.jpg' -resize '200x' -crop '200x200+0+35' +repage +write '/tmp/200.jpg' -resize 'x550>' +write '/tmp/550.jpg' -resize 'x400>' +write '/tmp/400.jpg' -resize 'x150>' '/tmp/150.jpg'
或者,我尝试了以下(使用+clone和-delete).它似乎工作,但很可能会更高效(也许mpr:,http://www.imagemagick.org/Usage/files/#mpr):
convert 'original.jpg'[0] -quality 95 -density 72x72 -resample 72x72 +profile '!xmp,*' \( +clone …
假设的例子:
我有汽车和车主.每辆车在给定时间属于一个(且仅一个)所有者,但所有权可能被转移.车主可以随时拥有零辆或多辆车.我想要的是将历史关系存储在MySQL数据库中,这样,在给定任意时间的情况下,我可以查找当前的车辆所有者分配.
即在时间X(X可以现在或过去的任何时间):
在SQL中创建M:N表(带有时间戳)很简单,但是我想避免使用相关的子查询,因为这个表会变大(因此性能会受到影响).有任何想法吗?我觉得有一种方法可以通过加入这样一个表来实现这一点,但我对数据库的经验并不十分.
更新:我想避免每行使用"start_date"和"end_date"字段,因为每次插入新行时都需要(可能)昂贵的查找.(而且,它是多余的).
在Rails 2.2.2(ruby 1.8.7-p72)中,我想评估在实际执行之前销毁对象的影响.即我希望能够生成一个受以下因素影响的所有对象的列表:dependent =>:destroy(通过对象的关联).我正在尝试解决的真正问题是为用户提供将要删除的所有内容的列表,并让他们确认操作.
任何人都可以推荐一个好方法来解决这个问题吗?我刚刚开始研究ActiveRecord :: Associations,但我没有取得多大进展.
更新:在我的特定情况下,我有各种级别的对象(A - > B - > C).
ruby ×3
mysql ×2
sql ×2
activerecord ×1
associations ×1
chaining ×1
core-data ×1
gsub ×1
image ×1
imagemagick ×1
indexing ×1
iphone ×1
postgresql ×1
regex ×1
replace ×1
string ×1
unique ×1
unit-testing ×1