我有一个使用条件定义的唯一约束.但以下测试未通过:
class Dummy
include Mongoid::Document
field :name, :type => String
field :status, :type => Boolean
validates_uniqueness_of :name, if: :status
end
describe "UniquenessValidator" do
let!(:d1) { Dummy.create!(name: 'NAME_1', status: true) }
let!(:d2) { Dummy.create!(name: 'NAME_1', status: false) }
it "should raise an error" do
expect {
d2.status = true
d2.save!
}.to raise_error
end
end
Run Code Online (Sandbox Code Playgroud)
由于name_changed?是假的,似乎没有进行验证,因此不检查唯一性条件.
这是一个错误吗?还是我忘了什么?我想这是一个优化,以避免每次修改元素时运行验证.
在这种情况下,当状态改变时触发验证的好方法是什么?
谢谢!
问题出在这里:我想使用透明div在图像上创建反应区域,但以下代码不适用于IE(在Chrome上测试):div"hover_zone"的背景颜色根本不会改变.
问题是由于背景颜色设置为透明.使用任何有效的颜色,如#FFF,它的工作原理(似乎IE认为:它是透明的,它不包含任何东西,让我们不显示它).
<html>
<body>
<style type='text/css'>
#hover_zone{
background-color:transparent;
visibility: visible;
position:absolute;
width:40px;
height:40px;
left:10px;
top:10px;
z-index:1000;
}
a:hover #hover_zone{
background-color:#0C0;
visibility: visible;
}
</style>
<div id="container">
<img src="http://ptaff.ca/blogue/wp-content/uploads/noir_black.png" />
<a href="#"><div id="hover_zone"></div></a>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
干杯!