| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Integration's definition of #to_param must override
Conversion's. Otherwise, there is a regression from
3.1 in the behavior of a non-persisted AR::Base instance
which nevertheless has an id.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Optional segments with a root scope need to have the leading slash
outside of the parentheses, otherwise the generated url will be empty.
However if the route has non-optional elements then the leading slash
needs to remain inside the parentheses otherwise the generated url
will have two leading slashes, e.g:
Blog::Application.routes.draw do
get '/(:category)', :to => 'posts#index', :as => :root
get '/(:category)/author/:name', :to => 'posts#author', :as => :author
end
$ rake routes
root GET /(:category)(.:format) posts#index
author GET (/:category)/author/:name(.:format) posts#author
This change adds support for optional segments that contain a slash,
allowing support for urls like /page/2 for the root path, e.g:
Blog::Application.routes.draw do
get '/(page/:page)', :to => 'posts#index', :as => :root
end
$ rake routes
root GET /(page/:page)(.:format) posts#index
Fixes #7073
|
|\
| |
| | |
Fix class_eval without __FILE__ and __LINE__.
|
| | |
|
|\ \
| |/
|/| |
Use database value for uniqueness validation scope
|
|/
|
|
|
|
| |
Fixes issue with overrding ActiveRecord reader methods with a
composed object and using that attribute as the scope of a
validates_uniqueness_of validation.
|
|\
| |
| | |
A more informative comment for config.asset.debug
|
| | |
|
|\ \
| | |
| | | |
Fix activerecord model to_ary method comment 'see also' link
|
|/ / |
|
|\ \ |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | | |
* comments.build will not actually persist the comment
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
passed, the second passed as well)
|
| | |
| | |
| | |
| | | |
expressions, escaping special chars like '.'. It seems email.encoded contains some unexpected line breaks (due to encoding), it's better to assert_match email.body.to_s.
|
| | |
| | |
| | |
| | | |
This reverts commit bf97795e7327e15774666d2197f1c0b8ada57a84.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This file uses Time.zone, which is defined in
active_support/core_ext/time/zones.rb.
|
|\ \ \
| | | |
| | | | |
Fix SqlBypass.data_column problem.
|
| | | |
| | | |
| | | |
| | | | |
didn't use this assignment.
|
|\| | |
| | | |
| | | | |
Avoid to call send(store_attribute) twice.
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Added time related req files to AS core_ext #6896
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
This way you can `require 'active_record/core_ext/time'` for example
I see these libs are available through `active_record/time` but not
individually
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
non-prepared statements
Conflicts:
activerecord/test/cases/query_cache_test.rb
|
| | |
| | |
| | |
| | |
| | | |
Conflicts:
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Prepared statements (prepare/execute/close) were being used unnecessarily
when no bind variables were present, and disabling prepared statement using
prepared_statements:false was principally broken. While bind variables were
correctly substituted with prepared_statements:false, the prepared statement
interface was still used, costing an extra two round trips per query.
In addition to making this behavioral change, I also cleaned up the internals
of exec_stmt and exec_without_stmt so that they behave the same (calling log
and constructing the ActiveRecord::Result in the same way).
Moving the check for binds.empty? to exec_query also will mean that several
code paths explicitly calling exec_without_stmt could be cleaned up to once
again call exec_query instead. I have also left the check for binds.empty? in
exec_stmt, since it is not a private method and could be called directly with
an empty binds array. For the sake of clarity in this patch, I have not made
those changes.
= The previous behavior =
When issuing a Foo.find(1) with prepared_statements:true, the bind variable
is present in the prepared query, and execute shows a value passed:
Connect root@localhost on rails_test
Query SET SQL_AUTO_IS_NULL=0
Statistics
Query SHOW FULL FIELDS FROM `foos`
Query SHOW TABLES LIKE 'foos'
Query SHOW CREATE TABLE `foos`
Prepare SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = ? LIMIT 1
Execute SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1
Close stmt
Quit
When issuing a Foo.find(1) with prepared_statements:false, the bind variable
has already been removed and substituted with the value, but the prepared
statement interface is used anyway:
Connect root@localhost on rails_test
Query SET SQL_AUTO_IS_NULL=0
Statistics
Query SHOW FULL FIELDS FROM `foos`
Query SHOW TABLES LIKE 'foos'
Query SHOW CREATE TABLE `foos`
Prepare SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1
Execute SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1
Close stmt
Quit
= With this patch applied =
When issuing a Foo.find(1) with prepared_statements:true, the bind variable
is present in the prepared query, and execute shows a value passed:
Connect root@localhost on rails_test
Query SET SQL_AUTO_IS_NULL=0
Statistics
Query SHOW FULL FIELDS FROM `foos`
Query SHOW TABLES LIKE 'foos'
Query SHOW CREATE TABLE `foos`
Prepare SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = ? LIMIT 1
Execute SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1
Close stmt
Quit
When issuing a Foo.find(1) with prepared_statements:false, the bind variable
has been removed and substituted with the value, and the query interface is
used instead of the prepared statement interface:
Connect root@localhost on rails_test
Query SET SQL_AUTO_IS_NULL=0
Statistics
Query SHOW FULL FIELDS FROM `foos`
Query SHOW TABLES LIKE 'foos'
Query SHOW CREATE TABLE `foos`
Query SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1
Quit
|
| | | |
|
|\ \ \
| | | |
| | | | |
[tiny fixes] Remove more duplicated code.
|
| | | | |
|
|/ / /
| | |
| | |
| | | |
exists in class method.
|
|\ \ \
| | | |
| | | | |
Remove duplicated code in the AR::Store.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
Add note about needing mysql superuser for unit tests.
|