aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #13776 from rails/dirty-enumRafael Mendonça França2014-01-216-4/+128
|\ | | | | | | | | | | | | Implement the Dirty API with the Enum feature correctly. Conflicts: activerecord/CHANGELOG.md
| * Use string as keysRafael Mendonça França2014-01-211-2/+2
| |
| * Store the enum values in the DEFINED_ENUM constantRafael Mendonça França2014-01-211-8/+8
| | | | | | | | | | This will make simpler to compare if the values changed in the save_changed_attribute method.
| * Add more tests for the dirty feature for enumsRafael Mendonça França2014-01-215-8/+53
| |
| * Make enum feature work with dirty methodsRafael Mendonça França2014-01-213-1/+76
| | | | | | | | | | To make this possible we have to override the save_changed_attribute hook.
| * Extract all attribute changed work to its own methodRafael Mendonça França2014-01-211-3/+7
| | | | | | | | This will make easier to hook on this feature to customize the behavior
* | Merge pull request #13784 from kuldeepaggarwal/fix-doc-collection-proxyRafael Mendonça França2014-01-211-1/+1
|\ \ | | | | | | Add missing information for `id` field when used with `select` [ci skip]
| * | add missing information for `id` field when used with `select` [ci skip]Kuldeep Aggarwal2014-01-221-1/+1
|/ /
* | `has_one` and `belongs_to` accessors don't add ORDER BY to the queries anymore.Rafael Mendonça França2014-01-214-1/+26
| | | | | | | | | | | | | | | | | | | | Since Rails 4.0, we add an ORDER BY in the `first` method to ensure consistent results among different database engines. But for singular associations this behavior is not needed since we will have one record to return. As this ORDER BY option can lead some performance issues we are removing it for singular associations accessors. Fixes #12623.
* | prepend table name for `Relation#select` columns.Yves Senn2014-01-213-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a bug where `select(:id)` combined with `joins()` raised: ``` ActiveRecord::StatementInvalid: SQLite3::SQLException: ambiguous column name: id: SELECT id, authors.author_address_id FROM "posts" INNER JOIN "authors" ON "authors"."id" = "posts"."author_id" ORDER BY posts.id LIMIT 3 ``` The `select_values` are still String and Symbols because other parts (mainly calculations.rb) rely on that fact. /cc @tenderlove
* | Merge pull request #13696 from senny/engine_bin_rails_load_bundlerYves Senn2014-01-211-0/+4
|\ \ | | | | | | setup Bundler in engines `bin/rails` stub.
| * | setup Bundler in engines `bin/rails` stub.Yves Senn2014-01-131-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is necessary when bundling gems locally using `BUNDLE_PATH`. Without this patch `bin/rails` fails with: ``` /Users/senny/.rbenv/versions/2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- rails/all (LoadError) from /Users/senny/.rbenv/versions/2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from bin/rails:7:in `<main>' ```
* | | Active Record changelog wording and formatting. [ci skip]Yves Senn2014-01-211-5/+6
| | |
* | | Merge pull request #9969 from divineforest/fix-find-in-batchesYves Senn2014-01-213-6/+13
|\ \ \ | | | | | | | | Fail early with "Primary key not included in the custom select clause" i...
| * | | Fail early with "Primary key not included in the custom select clause" in ↵Alexander Balashov2014-01-213-6/+13
| | |/ | |/| | | | | | | | | | find_in_batches Before this patch find_in_batches raises this error only on second iteration. So you will know about the problem only when you get the batch size threshold.
* / | Remove missed usage of @first variableCarlos Antonio da Silva2014-01-211-1/+1
|/ / | | | | | | | | | | | | | | With the introduction of `#second` method and friends, we added an offsets hash which replaced the @first variable, so removing it from the reset method to avoid creating an unused variable now. Introduced in bc625080308e4853ae3036f2ad74fe3826e463ef.
* | Forgot to push this change in the parent commitRafael Mendonça França2014-01-201-1/+1
| |
* | When applying changes or reseting changes create the right classRafael Mendonça França2014-01-202-3/+11
| | | | | | | | | | | | | | Before this patch after the changes are applied the changes can be only accessed using string keys, but before symbols are also accepted. After this change every state of the model will be consistent.
* | Remove unneded argumentRafael Mendonça França2014-01-201-2/+2
| | | | | | | | This variable is internal and should not be exposed to end users
* | Merge pull request #13757 from terracatta/masterRafael Mendonça França2014-01-2010-34/+245
|\ \ | | | | | | | | | Ensure #second (and others) acts like #first AR finder
| * | Ensure #second acts like #first AR finderJason Meller2014-01-2010-34/+245
|/ / | | | | | | | | | | | | | | | | | | | | | | This commit bring the famous ordinal Array instance methods defined in ActiveSupport into ActiveRecord as fully-fledged finders. These finders ensure a default ascending order of the table's primary key, and utilize the OFFSET SQL verb to locate the user's desired record. If an offset is defined in the query, calling #second adds to the offset to get the actual desired record. Fixes #13743.
* | Merge branch 'anilmaurya-master'Rafael Mendonça França2014-01-201-3/+1
|\ \
| * | moving controller_name assignment before model name conditionanilmaurya2014-01-201-3/+1
|/ /
* | Tidy up tests and CHANGELOG for #12598Andrew White2014-01-204-7/+37
| |
* | Automatically convert dashes to underscores in shorthand routesMikko Johansson2014-01-202-0/+11
| |
* | Automatically convert dashes to underscores for url helpersAmr Tamimi2014-01-204-2/+20
| |
* | docs should say `email` not `Email`. [ci skip]Yves Senn2014-01-203-4/+4
| |
* | docs, hyperlink the `Mail gem` in Action Mailer guide. [ci skip]Yves Senn2014-01-201-2/+2
| |
* | let's link to the gem README not to the upgrading guide. [ci skip]Yves Senn2014-01-201-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | The PR #13767 added link to the upgrading guide to explain details about activerecord_deprecated-finders. However the link target features a stack of changes not releated at all. Also the relevant details are not very informative. I think we better link to the README so people can see what the gem is about and how to use it. /cc @chancancode @zzak
* | Fix secrets.yml path in exception messageCarlos Antonio da Silva2014-01-201-9/+7
| | | | | | | | The file is config/secrets.yml, not config/initializers/secrets.yml.
* | Merge pull request #13767 from zzak/doc_4_1_release_notes_deprecated_findersGodfrey Chan2014-01-201-0/+3
|\ \ | | | | | | Add link to upgrade guide for full list of deprecated finders [ci skip]
| * | Add link to upgrade guide for full list of deprecated finders [ci skip]Zachary Scott2014-01-191-0/+3
| | |
* | | Merge pull request #13769 from arelenglish/fix_typo_upgrad_guideGodfrey Chan2014-01-191-1/+1
|\ \ \ | | | | | | | | Fix a typo that says you application [ci skip]
| * | | Fix a typo that says you application [ci skip]Arel English2014-01-201-1/+1
|/ / /
* | | Merge pull request #13768 from rajeshthummalapally/rails_blog_correct_patch_linkGodfrey Chan2014-01-191-1/+1
|\ \ \ | | | | | | | | Fix for incorrect link that is pointing to Rails blog [ci skip]
| * | | Correcting link that is pointing to Rails blog [ci skip]Rajesh Thummalapally2014-01-191-1/+1
|/ / /
* | | Merge pull request #13765 from robertomiranda/secrets_tokenGuillermo Iguaran2014-01-191-4/+4
|\ \ \ | | | | | | | | Update Error Message when secrets.secret_key_base isn't given
| * | | Update Error Message when secrets.secret_key_base isn't givenrobertomiranda2014-01-191-4/+4
| | | |
* | | | Merge pull request #13745 from nextgearcapital/masterRafael Mendonça França2014-01-193-0/+6
|\ \ \ \ | | | | | | | | | | set encoding for pipe to binary mode
| * | | | set encoding to binmode for pipeAnna Carey2014-01-173-0/+6
| | | | |
* | | | | Merge pull request #13762 from robertomiranda/spring-under-railsRobin Dupret2014-01-191-1/+1
|\ \ \ \ \ | |_|/ / / |/| | | | Update Changelog, Spring is under rails/spring [ci skip]
| * | | | Update Changelog, Spring is under rails/spring [ci skip]robertomiranda2014-01-191-1/+1
|/ / / /
* | | | Merge pull request #13759 from raysrashmi/rails-springRobin Dupret2014-01-193-4/+4
|\ \ \ \ | | | | | | | | | | Spring in now under rails/spring [ci skip]
| * | | | Spring in now under rails/spring [ci skip]Rashmi Yadav2014-01-193-4/+4
|/ / / /
* | | | Merge pull request #13756 from huoxito/rails-springAndrew White2014-01-191-1/+1
|\ \ \ \ | | | | | | | | | | spring gem moved to rails/spring
| * | | | spring gem moved to rails/springWashington Luiz2014-01-181-1/+1
|/ / / /
* | | | Merge pull request #13751 from chancancode/ar_rollback_fixGodfrey Chan2014-01-184-6/+26
|\ \ \ \ | | | | | | | | | | Restore ActiveRecord states after a rollback for models w/o callbacks
| * | | | Restore ActiveRecord states after a rollback for models w/o callbacksGodfrey Chan2014-01-184-6/+26
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a regression (#13744) that was caused by 67d8bb9. In 67d8bb9, we introduced lazy rollback for records, such that the record's internal states and attributes are not restored immediately after a transaction rollback, but deferred until they are first accessed. This optimization is only performed when the model does not have any transactional callbacks (e.g. `after_commit` and `after_create`). Unfortunately, the models used to test the affected codepaths all comes with some sort of transactional callbacks. Therefore this codepath remains largely untested until now and as a result there are a few issues in the implementation that remains hidden until now. First, the `sync_with_transaction_state` (or more accurately, `update_attributes_from_transaction_state`) would perform the synchronization prematurely before a transaction is finalized (i.e. comitted or rolled back). As a result, when the actuall rollback happens, the record will incorrectly assumes that its internal states match the transaction state, and neglect to perform the restore. Second, `update_attributes_from_transaction_state` calls `committed!` in some cases. This in turns checks for the `destroyed?` state which also requires synchronization with the transaction stae, which causes an infnite recurrsion. This fix works by deferring the synchronization until the transaction has been finalized (addressing the first point), and also unrolled the `committed!` and `rolledback!` logic in-place (addressing the second point). It should be noted that the primary purpose of the `committed!` and `rolledback!` methods are to trigger the relevant transactional callbacks. Since this code path is only entered when there are no transactional callbacks on the model, this shouldn't be necessary. By unrolling the method calls, the intention here (to restore the states when necessary) becomes more clear.
* | | | Merge pull request #13748 from summerblue/masterRichard Schneeman2014-01-171-1/+1
|\ \ \ \ | | | | | | | | | | Correct the version number to 4 in guides[ci skip]
| * | | | Correct the version number to 4 in guides[ci skip]Charlie Jade2014-01-181-1/+1
|/ / / /