mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Added Base.exists?(id) that'll return true if an object of the class with the given id exists #854 [stian@grytoyr.net]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@913 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
9776bfc8a0
commit
2f944123f3
3 changed files with 16 additions and 0 deletions
|
@ -1,5 +1,7 @@
|
|||
*SVN*
|
||||
|
||||
* Added Base.exists?(id) that'll return true if an object of the class with the given id exists #854 [stian@grytoyr.net]
|
||||
|
||||
* Added optionally allow for nil or empty strings with validates_numericality_of #801 [Sebastian Kanthak]
|
||||
|
||||
* Fixed problem with using slashes in validates_format_of regular expressions #801 [Sebastian Kanthak]
|
||||
|
|
|
@ -326,6 +326,13 @@ module ActiveRecord #:nodoc:
|
|||
end
|
||||
end
|
||||
|
||||
# Returns true if the given +id+ represents the primary key of a record in the database, false otherwise.
|
||||
# Example:
|
||||
# Person.exists?(5)
|
||||
def exists?(id)
|
||||
!find_first("#{primary_key} = #{sanitize(id)}").nil?
|
||||
end
|
||||
|
||||
# This method is deprecated in favor of find with the :conditions option.
|
||||
# Works like find, but the record matching +id+ must also meet the +conditions+.
|
||||
# +RecordNotFound+ is raised if no record can be found matching the +id+ or meeting the condition.
|
||||
|
|
|
@ -10,6 +10,13 @@ class FinderTest < Test::Unit::TestCase
|
|||
assert_equal(@topics["first"]["title"], Topic.find(1).title)
|
||||
end
|
||||
|
||||
def test_exists
|
||||
assert (Topic.exists?(1))
|
||||
assert !(Topic.exists?(45))
|
||||
assert !(Topic.exists?("foo"))
|
||||
assert !(Topic.exists?([1,2]))
|
||||
end
|
||||
|
||||
def test_find_by_array_of_one_id
|
||||
assert_kind_of(Array, Topic.find([ 1 ]))
|
||||
assert_equal(1, Topic.find([ 1 ]).length)
|
||||
|
|
Loading…
Reference in a new issue