Jeremy Kemper
55efae2387
Performance: absorb instantiate and initialize_with_callbacks into the Base methods.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7380 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-08-31 01:56:39 +00:00
David Heinemeier Hansson
3566be4728
Fixed that eager loading queries and with_scope should respect the :group option [DHH]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7355 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-08-21 21:58:38 +00:00
Michael Koziarski
5b801b5960
Change the implementation of ActiveRecord's attribute reader and writer methods:
...
* Generate Reader and Writer methods which cache attribute values in hashes. This is to avoid repeatedly parsing the same date or integer columns.
* Move the attribute related methods out to attribute_methods.rb to de-clutter base.rb
* Change exception raised when users use find with :select then try to access a skipped column. Plugins could override missing_attribute() to lazily load the columns.
* Move method definition to the class, instead of the instance
* Always generate the readers, writers and predicate methods.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7315 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-08-14 08:53:02 +00:00
Michael Koziarski
bb94ce92fc
Let inspect on AR classes work when the table doesn't exist. Closes #9194 [tarmo, nzkoz]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7278 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-08-06 00:18:50 +00:00
Michael Koziarski
c4c6662498
Performance enhancement for Base.exists?. CLoses #8769 . [hasmanyjosh]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7274 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-08-05 00:57:43 +00:00
David Heinemeier Hansson
edd68a587f
Refactored in use of extract_options! ( closes #9079 ) [josh]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7220 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-07-24 16:48:57 +00:00
Michael Koziarski
3fbfc13ee3
Move from select * to select tablename.* to avoid clobbering IDs. Closes #8889 [dasil003]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7167 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-07-07 02:42:42 +00:00
Jeremy Kemper
02311a5db1
Array attribute conditions work with proxied association collections. Closes #8318 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7133 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-06-27 02:56:11 +00:00
David Heinemeier Hansson
1a0cdf74be
Docfix ( closes #8096 )
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7107 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-06-23 17:52:50 +00:00
David Heinemeier Hansson
b0391d133a
Docfix ( closes #8674 )
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7101 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-06-23 17:34:41 +00:00
Jeremy Kemper
b94f8e1d29
Remove deprecated quote methods, replaced by quote_value so quote can be used as an attribute name.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7000 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-06-11 08:06:07 +00:00
Jeremy Kemper
7858a32e1b
Remove deprecated find_first and find_all.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6998 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-06-11 07:45:56 +00:00
Jeremy Kemper
813e8ba93b
Fix Base#inspect when not every attribute is present. Closes #8623 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6995 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-06-11 05:02:42 +00:00
Jeremy Kemper
d0360a4d5c
Base.inspect handles Base itself and abstract_class? Don't use #<Foo ...> since that notation's typically used for instances of a class, not the class itself. Closes #8490 [deepblue]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6913 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-31 17:31:33 +00:00
Jeremy Kemper
8158455ded
Fix an edge case with find with a list of ids, limit, and offset. Closes #8437 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6912 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-31 17:15:56 +00:00
Jeremy Kemper
1edd21bb02
with_scope is protected. Closes #8524 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6909 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-30 21:40:55 +00:00
Jeremy Kemper
af98d883b9
Raise an exception if both attr_protected and attr_accessible are declared. Closes #8507 , #6004 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6896 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-29 20:35:46 +00:00
Rick Olson
4472a30aad
Allow nil serialized attributes with a set class constraint. #7293 [sandofsky]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6879 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-28 15:51:53 +00:00
Jeremy Kemper
2be3a33f32
find gracefully copes with blank :conditions. Closes #7599 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6852 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-26 00:35:49 +00:00
Jeremy Kemper
109926c5a3
Find with a list of ids supports limit/offset. Closes #8437 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6845 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-25 21:56:21 +00:00
Jeremy Kemper
def61a200e
Call the newly generated read method after generating it. Closes #8470 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6837 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-25 20:55:05 +00:00
Jeremy Kemper
a995b9cde0
Fix #inspect for new records. Closes #8405 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6782 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-19 01:35:19 +00:00
Jeremy Kemper
39c64fff8a
Clarify :offset docs. Closes #3733 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6769 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-18 19:06:54 +00:00
Jeremy Kemper
4d753adeaf
Pay tribute to timezones. Tune #inspect style.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6766 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-18 07:24:03 +00:00
Jeremy Kemper
e48b062eed
Sanitize Base#inspect. Closes #8392 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6761 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-18 02:11:43 +00:00
Michael Koziarski
ebbe4fb0d4
Replace the transaction {|transaction|..} semantics with a new Exception ActiveRecord::Rollback. Closes #8030 [Koz]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6754 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-18 01:02:08 +00:00
Marcel Molina
ee614d6319
Add documentation caveat about when to use count_by_sql. Closes #8090 . [fearoffish]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6685 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-06 05:10:19 +00:00
Marcel Molina
15dc567e0f
Also add documentation enhancements for increment_counter. Closes #8092 . [fearoffish]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6684 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-06 05:08:05 +00:00
Marcel Molina
5bd35705ca
Enhance documentation for decrement_counter. Closes #8093 . [fearoffish]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6683 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-06 05:06:26 +00:00
David Heinemeier Hansson
57352f86d4
Improved performance by relying less on exception raising #8159 [Blaine]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6571 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-04-24 16:58:24 +00:00
David Heinemeier Hansson
52a9e5089c
Added ActiveRecord::Base.inspect to return a column-view like #<Post id:integer, title:string, body:text> [DHH]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6549 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-04-21 17:35:09 +00:00
Rick Olson
2a305949d7
documentation project patches, closes #7342 , #7319 , #7316 , #7190 [jeremymcanally]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6470 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-03-27 14:04:06 +00:00
Jeremy Kemper
a38f28fff1
Base.update_all :order and :limit options. Useful for MySQL updates that must be ordered to avoid violating unique constraints.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6440 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-03-17 15:48:47 +00:00
Jeremy Kemper
14cc8d2faf
find_or_create_by_* takes a hash so you can create with more attributes than are in the method name. Closes #7368 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6420 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-03-14 01:08:45 +00:00
Michael Koziarski
5bd116ccf4
Make sure with_scope takes both :select and :joins into account when setting :readonly. Allows you to save records you retrieve using finders on a has_many :through associations. [Koz]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6413 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-03-13 09:45:09 +00:00
Jeremy Kemper
98165fd31e
Consistently quote primary key column names. Closes #7763 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6364 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-03-09 03:23:37 +00:00
Jeremy Kemper
1e9e198cc5
Note that find results may not be in the same order as the id arguments. Closes #7719 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6347 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-03-06 09:33:08 +00:00
Jamis Buck
83752373b9
Made increment_counter/decrement_counter play nicely with optimistic locking, and added a more general update_counters method
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6139 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-02-07 16:10:40 +00:00
Jeremy Kemper
5acea7fc9c
update_all can take a Hash argument. sanitize_sql splits into two methods for conditions and assignment since NULL values and delimiters are handled differently. References #6583 , closes #7365 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6073 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-01-28 15:12:54 +00:00
Rick Olson
1a11bffde1
Don't create instance writer methods for class attributes. Closes #7401 [Rick]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6051 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-01-28 01:31:31 +00:00
Rick Olson
8296c680d5
Remove useless code in #attribute_present? since 0 != blank?. Closes #7249 [Josh Susser]. Fix minor doc typos. Closes #7157 [Josh Susser]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6018 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-01-23 05:10:21 +00:00
Jeremy Kemper
06afb8c746
Subclasses of an abstract class work with single-table inheritance. References #5704 , closes #7284 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6013 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-01-23 04:19:16 +00:00
Tobias Lütke
e24d2f7234
Apply scoping during initialize instead of create. Fixes setting of foreign key when using find_or_initialize_by with scoping.
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5913 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-01-12 21:14:36 +00:00
Jeremy Kemper
c302cdfcc4
Fix scope typo in add_lock! Closes #6482 . [zubek]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5907 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-01-12 10:18:11 +00:00
Jeremy Kemper
28767075f4
Pass a range in :conditions to use the SQL BETWEEN operator. Closes #6974 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5876 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-01-10 10:13:18 +00:00
Jamis Buck
6a5388b654
try to appease the angry Oracle
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5808 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-12-29 19:05:53 +00:00
Jamis Buck
0bfabaa048
make sure query attributes on custom fields works as it used to
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5807 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-12-29 17:24:35 +00:00
Michael Koziarski
3b4450bb80
Docs fix for columns_hash [bradediger]
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5797 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-12-27 20:41:55 +00:00
Michael Koziarski
58edaaad0b
Ensure dynamic finders are anchored to the beginning of the method name to prevent
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5795 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-12-27 20:35:19 +00:00
Jeremy Kemper
7277c51891
Partially revert [5660] - makes more trouble than it resolves. References #5704 , closes #6766 .
...
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5753 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-12-19 19:47:21 +00:00