Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
6e5ab6fc
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6e5ab6fc
编写于
3月 09, 2013
作者:
C
Carlos Antonio da Silva
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Change uniq validation with conditions examples to use where with hashes
Take the opportunity to showcase where.not.
上级
f56cdbdf
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
5 addition
and
5 deletion
+5
-5
activerecord/lib/active_record/validations/uniqueness.rb
activerecord/lib/active_record/validations/uniqueness.rb
+3
-3
activerecord/test/cases/validations/uniqueness_validation_test.rb
...cord/test/cases/validations/uniqueness_validation_test.rb
+2
-2
未找到文件。
activerecord/lib/active_record/validations/uniqueness.rb
浏览文件 @
6e5ab6fc
...
...
@@ -4,7 +4,7 @@ class UniquenessValidator < ActiveModel::EachValidator # :nodoc:
def
initialize
(
options
)
if
options
[
:conditions
]
&&
!
options
[
:conditions
].
respond_to?
(
:call
)
raise
ArgumentError
,
"
#{
options
[
:conditions
]
}
was passed as :conditions but is not callable. "
\
"Pass a callable instead: `conditions: -> { where(
'approved = ?',
true) }`"
"Pass a callable instead: `conditions: -> { where(
approved:
true) }`"
end
super
({
case_sensitive:
true
}.
merge!
(
options
))
end
...
...
@@ -120,7 +120,7 @@ module ClassMethods
# of the title attribute:
#
# class Article < ActiveRecord::Base
# validates_uniqueness_of :title, conditions: -> { where
('status != ?',
'archived') }
# validates_uniqueness_of :title, conditions: -> { where
.not(status:
'archived') }
# end
#
# When the record is created, a check is performed to make sure that no
...
...
@@ -136,7 +136,7 @@ module ClassMethods
# the uniqueness constraint.
# * <tt>:conditions</tt> - Specify the conditions to be included as a
# <tt>WHERE</tt> SQL fragment to limit the uniqueness constraint lookup
# (e.g. <tt>conditions: -> { where(
'status = ?',
'active') }</tt>).
# (e.g. <tt>conditions: -> { where(
status:
'active') }</tt>).
# * <tt>:case_sensitive</tt> - Looks for an exact match. Ignored by
# non-text columns (+true+ by default).
# * <tt>:allow_nil</tt> - If set to +true+, skips this validation if the
...
...
activerecord/test/cases/validations/uniqueness_validation_test.rb
浏览文件 @
6e5ab6fc
...
...
@@ -348,7 +348,7 @@ def test_validate_straight_inheritance_uniqueness
end
def
test_validate_uniqueness_with_conditions
Topic
.
validates_uniqueness_of
:title
,
conditions:
->
{
where
(
'approved = ?'
,
true
)
}
Topic
.
validates_uniqueness_of
:title
,
conditions:
->
{
where
(
approved:
true
)
}
Topic
.
create
(
"title"
=>
"I'm a topic"
,
"approved"
=>
true
)
Topic
.
create
(
"title"
=>
"I'm an unapproved topic"
,
"approved"
=>
false
)
...
...
@@ -361,7 +361,7 @@ def test_validate_uniqueness_with_conditions
def
test_validate_uniqueness_with_non_callable_conditions_is_not_supported
assert_raises
(
ArgumentError
)
{
Topic
.
validates_uniqueness_of
:title
,
conditions:
Topic
.
where
(
'approved = ?'
,
true
)
Topic
.
validates_uniqueness_of
:title
,
conditions:
Topic
.
where
(
approved:
true
)
}
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录