David Heinemeier Hansson
28edbca477
Fixed that the dynamic finder like find_all_by_something_boolean(false) didn't work #649 [lmarlow@yahoo.com]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@666 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-18 17:16:04 +00:00
David Heinemeier Hansson
c00bf5f0c6
Fixed the verbosity of using the AR store
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@639 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-17 01:23:41 +00:00
David Heinemeier Hansson
dc3d6eb9b4
Moved Active Support into its own gem
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@624 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-15 15:57:44 +00:00
David Heinemeier Hansson
a3298e5efd
Small indent
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@613 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-15 00:03:18 +00:00
David Heinemeier Hansson
1aa82b3217
Added keyword-style approach to defining the custom relational bindings #545 [Jamis Buck]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@527 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-07 14:26:57 +00:00
David Heinemeier Hansson
098fa94356
Fixed documentation snafus #575 , #576 , #577 , #585
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@525 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-07 14:15:53 +00:00
David Heinemeier Hansson
431e21cb45
Fixed Base#clone for use with PostgreSQL #565 [hanson@surgery.wisc.edu]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@519 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-07 13:43:44 +00:00
David Heinemeier Hansson
66f44e6cbb
Updated documentation for serialize
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@512 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-25 20:00:20 +00:00
David Heinemeier Hansson
efa81dad51
Added the option of supplying an array of ids and attributes to Base#update, so that multiple records can be updated at once (inspired by #526/Duane Johnson). Added the option of supplying an array of attributes to Base#create, so that multiple records can be created at once. Added that Base#delete and Base#destroy both can take an array of ids to delete/destroy #336 . Added that has_many association build and create methods can take arrays of record data like Base#create and Base#build to build/create multiple records at once.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@504 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-25 12:45:01 +00:00
David Heinemeier Hansson
0d2db8a7d1
Added Base.update_collection that can update an array of id/attribute pairs, such as the ones produced by the recent added support for automatic id-based indexing for lists of items #526 [Duane Johnson]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@496 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-24 14:13:10 +00:00
David Heinemeier Hansson
566a36966b
Added that update_all calls sanitize_sql on its updates argument, so stuff like MyRecord.update_all(['time = ?', Time.now]) works #519 [notahat]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@489 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-24 13:06:12 +00:00
David Heinemeier Hansson
93ec130377
Fixed that the dynamic finders didnt treat nil as a "IS NULL" but rather "= NULL" case #515 [Demetrius]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@488 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-24 13:02:50 +00:00
David Heinemeier Hansson
872ddaf290
Added bind-named arrays for interpolating a group of ids or strings in conditions #528 [bitsweat]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@485 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-24 11:57:22 +00:00
David Heinemeier Hansson
b29c01ea89
Added that has_and_belongs_to_many associations with additional attributes also can be created between unsaved objects and only committed to the database when Base#save is called on the associator #524 [Eric Anderson]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@484 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-24 11:39:23 +00:00
David Heinemeier Hansson
1d61845587
Fixed that records fetched with piggy-back attributes or through rich has_and_belongs_to_many associations couldn't be saved due to the extra attributes not part of the table #522 [Eric Anderson]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@483 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-24 11:20:47 +00:00
David Heinemeier Hansson
95454bfb33
Added mass-assignment protection for the inheritance column -- regardless of a custom column is used or not
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@477 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-23 17:24:54 +00:00
David Heinemeier Hansson
97849debf3
Fixed that association proxies would fail === tests like PremiumSubscription === @account.subscription
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@476 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-23 15:19:33 +00:00
David Heinemeier Hansson
b40d3c9e62
Replaced === checks with is_a? checks #502 , #82 [Marcel Molina]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@466 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-20 14:40:11 +00:00
David Heinemeier Hansson
1f7e72ff51
Made human_attribute_name(attribute_key_name) use Inflector.humanize
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@451 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-17 19:58:02 +00:00
David Heinemeier Hansson
823554eafe
Added support for associating unsaved objects #402 [Tim Bates]
...
Added replace to associations, so you can do project.manager.replace(new_manager) or project.milestones.replace(new_milestones) #402 [Tim Bates]
Added build and create methods to has_one and belongs_to associations, so you can now do project.manager.build(attributes) #402 [Tim Bates]
Fixed that Base#== wouldn't work for multiple references to the same unsaved object #402 [Tim Bates]
Added that if a before_* callback returns false, all the later callbacks and the associated action are cancelled. If an after_* callback returns false, all the later callbacks are cancelled. Callbacks are generally run in the order they are defined, with the exception of callbacks defined as methods on the model, which are called last. #402 [Tim Bates]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@417 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-15 17:45:16 +00:00
David Heinemeier Hansson
4cee51e1cc
Refactored ActiveRecord::Base#clone to use Base#attributes #463 [atyp]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@401 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-13 13:56:00 +00:00
David Heinemeier Hansson
b067bf7884
Added Base#attributes that returns a hash of all the attributes with their names as keys and clones of their objects as values #433 [atyp.de]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@386 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-11 00:45:26 +00:00
David Heinemeier Hansson
3ff5c5805f
Added Base#reload that reloads the attributes of an object from the database #422 [Andreas Schwarz]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@376 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-10 23:49:57 +00:00
David Heinemeier Hansson
393e98a859
Fixed Base#update_attribute to be indifferent to whether a string or symbol is used to describe the name
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@341 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-06 02:36:33 +00:00
David Heinemeier Hansson
d1abe806c5
Added Base#toggle(attribute) and Base#toggle!(attribute) that makes it easier to flip a switch or flag. Added Base#increment!(attribute) and Base#decrement!(attribute) that also saves the records. Added Base#increment(attribute) and Base#decrement(attribute) that encapsulates the += 1 and -= 1 patterns.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@340 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-06 02:31:35 +00:00
David Heinemeier Hansson
846f0d5ab6
Fixed that the overwritten respond_to? method didn't take two parameters like the original #391
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@326 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-03 23:23:02 +00:00
David Heinemeier Hansson
569f2ea85b
Added the possibility of specifying the remaining options for find_first and find_all with the new find_by/all_by* dynamic finders [danp]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@316 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-02 18:28:18 +00:00
David Heinemeier Hansson
959f362ac4
Added find_all style to the new dynamic finders
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@308 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-02 13:51:00 +00:00
David Heinemeier Hansson
ac8fd7dfb9
Added dynamic attribute-based finders as a cleaner way of getting objects by simple queries without turning to SQL.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@307 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-02 13:31:00 +00:00
David Heinemeier Hansson
93221685f1
Restored bind arity checking #412 [bitsweat]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@306 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-02 12:45:53 +00:00
David Heinemeier Hansson
6bd672eb0d
Added that Base#find takes an optional options hash, including :conditions. Base#find_on_conditions deprecated in favor of #find with :conditions #407 [bitsweat]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@305 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-01 19:50:23 +00:00
David Heinemeier Hansson
daf3e92a31
Added a db2 adapter that only depends on the Ruby/DB2 bindings ( http://raa.ruby-lang.org/project/ruby-db2/ ) #386 [Maik Schmidt]. Converted all the fixtures to YAML style ones.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@303 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-01 19:22:16 +00:00
David Heinemeier Hansson
fbf9281f0e
Added automated optimistic locking if the field lock_version is present #384 [Michael Koziarski]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@295 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-31 19:38:04 +00:00
David Heinemeier Hansson
fa1f5e062e
Switch dispatcher to use the new shared Dependencies approach
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@280 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-29 21:26:20 +00:00
David Heinemeier Hansson
60de8c1108
Added Base.default_timezone accessor that determines whether to use Time.local (using :local) or Time.utc (using :utc) when pulling dates and times from the database. This is set to :local by default.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@271 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-28 17:30:17 +00:00
David Heinemeier Hansson
4cd9c9561a
Added the possibility for adapters to overwrite add_limit! to implement a different limiting scheme than "LIMIT X" used by MySQL, PostgreSQL, and SQLite.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@269 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-28 16:26:06 +00:00
David Heinemeier Hansson
dcc486805e
Fixed that Base.table_name would expect a parameter when used in has_and_belongs_to_many joins [Anna Lissa Cruz]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@244 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-22 13:00:15 +00:00
David Heinemeier Hansson
3e5a880987
Switched strategy on the id_before_type_cast problem and just did an explicit method so postgresql wouldnt choke on id is null
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@234 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-20 13:32:09 +00:00
David Heinemeier Hansson
ef489ca2ad
Pulling attributes_from_column_definition should set the primary id to nil instead of not at all
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@232 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-19 23:11:06 +00:00
David Heinemeier Hansson
2f26785425
Scrap that
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@231 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-19 22:49:56 +00:00
David Heinemeier Hansson
c489b87d9d
Dont define respond_to? lookups for primary key
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@230 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-19 22:40:09 +00:00
David Heinemeier Hansson
dad37cfafa
FormHelper should only use *_before_type_cast if they available on the model
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@229 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-19 16:39:56 +00:00
David Heinemeier Hansson
69cb942d9b
Changed the interface on AbstractAdapter to require that adapters return the number of affected rows on delete and update operations. Added that Base.update_all and Base.delete_all return an integer of the number of affected rows #341
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@228 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-19 16:21:55 +00:00
David Heinemeier Hansson
7b5ed66122
Added respondence to *_before_type_cast for all attributes to return their string-state before they were type casted by the column type. Added use of *_before_type_cast for all input and text fields.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@215 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-19 11:25:55 +00:00
David Heinemeier Hansson
d678997688
Base#update_attribute isnt subject to validation
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@210 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-18 11:17:22 +00:00
David Heinemeier Hansson
3bef4c246a
Made Base#update_attributes actually work
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@209 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-18 01:27:57 +00:00
David Heinemeier Hansson
604a09462e
Added Base#update_attributes that'll accept a hash of attributes and save the record (returning true if it passed validation, false otherwise). Added a return value for Base#update_attribute, so that you get to know whether the save was successful or if it failed validation.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@207 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-17 21:51:14 +00:00
David Heinemeier Hansson
648b8fda54
Added Base.destroy and Base.delete to remove records without holding a reference to them first.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@206 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-17 21:36:13 +00:00
David Heinemeier Hansson
f033833fb9
Improving documentation...
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@191 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-16 16:56:30 +00:00
David Heinemeier Hansson
57ed93ee66
Fixed that Base#find will return an array if given an array -- regardless of the number of elements #270 [Marten]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@164 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2004-12-15 11:55:43 +00:00