| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
It's properly called "Mac OS X"
|
|
|
|
| |
This is based on Rails 4, not Rails 3.2.
|
|
|
|
|
|
|
|
| |
changed #error_explanation to #errorExplanation"
At least in master the selector is snake case.
This reverts commit ba2fed41613e02bb6cfc46c92ace00abb99ce313.
|
|
|
|
| |
preformatted text
|
|
|
|
| |
From https://github.com/lifo/docrails/commit/cfd324b4b68469ba3188e4b7ba8586e59b239693\#commitcomment-2213592
|
|
|
|
| |
From https://github.com/rails/rails/issues/6161\#issuecomment-10750118
|
|
|
|
| |
#error_explanation to #errorExplanation
|
| |
|
|\
| |
| | |
Clarification to ActiveRecord Validations Doc in 7.2 Custom Methods
|
|/
|
| |
In the expiration_date_cannot_be_in_the_past validation method, use `expiration_date.present?` instead of the double negative `!expiration_date.blank?`. Also join the comparisons with `&&` instead of `and`, which could cause unintended consequences.
|
|
|
|
|
|
| |
This reverts commit c94cfdad6388dcdfaf4c10b9e8cee46baf2a7901.
* This is the new 4.0 (master) directory structure
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
* This shows the reader there is a method: and
data: parameters
|
|
|
|
| |
* No need to give a simple example, as we have a
partial that we create in the blog app
|
|
|
|
|
|
|
| |
* Rails generate model Post ______ creates the
attr_accessible line for you for any fields
you specify. Changed the section to describe
what this line in the model does.
|
| |
|
| |
|
|\ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
prevent mass assignment of polymorphic type when using `build`
Conflicts:
activerecord/CHANGELOG.md
|
| | |
| | |
| | |
| | | |
Closes #8265
|
| | |
| | |
| | |
| | | |
[ci skip]
|
|\ \ \
| | | |
| | | | |
Allow setting a symbol as path in scope on routes
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Was surprising found that this example doesn't work:
scope :api do
resources :users
end
and the right form to use it is:
scope 'api' do
resources :users
end
I think this should work similary as `namespace` where both are allowed.
These two are equivalent:
namespace :api do
resources :users
end
namespace 'api' do
resources :user
end
|
| | |
| | |
| | |
| | |
| | |
| | | |
Since now these objects are not cached anymore, there's no need to have
these private methods, just instantiate each of them in the necessary
place.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Follow up of the discussion from the original merge commit:
https://github.com/rails/rails/commit/f9cb645dfcb5cc89f59d2f8b58a019486c828c73#commitcomment-1414561
We want to avoid people's mistakes with methods like count and sum when
called with a block, that can easily lead to code performing poorly and
that could be way better written with a db query.
Please check the discussion there for more background.
Closes #8268
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since edd94cee9af1688dd036fc58fd405adb30a5e0da, CollectionProxy
delegates all calculation methods - except count - to the scope,
which does basically what this method was doing, but since we're
delegating from the proxy, the association method was never called.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
To perform a sum calculation over the array of elements, use to_a.sum(&block).
Please check the discussion in f9cb645dfcb5cc89f59d2f8b58a019486c828c73
for more context.
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit f9cb645dfcb5cc89f59d2f8b58a019486c828c73.
Conflicts:
activerecord/CHANGELOG.md
Revert "Allow blocks for count with ActiveRecord::Relation. Document and test that sum allows blocks"
This reverts commit 9cc2bf69ce296b7351dc612a8366193390a305f3.
Conflicts:
activerecord/lib/active_record/relation/calculations.rb
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This improves memory and performance without having to use symbols which
present DoS problems. Thanks @headius and @tenderlove for the
suggestion.
This was originally committed in
f1765019ce9b6292f2264b4601dad5daaffe3a89, and then reverted in
d3494903719682abc0948bef290af0d3d7b5a440 due to it causing problems in a
real application. This second attempt should solve that.
Benchmark
---------
require 'active_record'
require 'benchmark/ips'
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
class Post < ActiveRecord::Base
connection.create_table :posts, force: true do |t|
t.string :name
end
end
post = Post.create name: 'omg'
Benchmark.ips do |r|
r.report('Post.new') { Post.new name: 'omg' }
r.report('post.name') { post.name }
r.report('post.name=') { post.name = 'omg' }
r.report('Post.find(1).name') { Post.find(1).name }
end
Before
------
Calculating -------------------------------------
Post.new 1419 i/100ms
post.name 7538 i/100ms
post.name= 3024 i/100ms
Post.find(1).name 243 i/100ms
-------------------------------------------------
Post.new 20637.6 (±12.7%) i/s - 102168 in 5.039578s
post.name 1167897.7 (±18.2%) i/s - 5186144 in 4.983077s
post.name= 64305.6 (±9.6%) i/s - 317520 in 4.998720s
Post.find(1).name 2678.8 (±10.8%) i/s - 13365 in 5.051265s
After
-----
Calculating -------------------------------------
Post.new 1431 i/100ms
post.name 7790 i/100ms
post.name= 3181 i/100ms
Post.find(1).name 245 i/100ms
-------------------------------------------------
Post.new 21308.8 (±12.2%) i/s - 105894 in 5.053879s
post.name 1534103.8 (±2.1%) i/s - 7634200 in 4.979405s
post.name= 67441.0 (±7.5%) i/s - 337186 in 5.037871s
Post.find(1).name 2681.9 (±10.6%) i/s - 13475 in 5.084511s
|
| | | |
|
|/ /
| |
| |
| | |
Around 0.564359s => 0.092244s speed up in my machine.
|
|\ \
| | |
| | | |
Store FlashHashes in the session as plain hashes
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
with unstable class names and instance variables.
Refactor FlashHash to take values for its ivars in the constructor, to pretty up FlashHash.from_session_value.
Remove stale comment on FlashHash: it is no longer Marshaled in the session so we can change its implementation.
Remove blank lines I introduced in controller/test_case.rb.
Unit tests for FlashHash#to_session_value.
Put in a compatibility layer to accept FlashHash serializations from Rails 3.0+.
Test that Rails 3.2 session flashes are correctly converted to the new format.
Remove code path for processing Rails 3.0 FlashHashes since they can no longer deserialize.
Fix session['flash'] deletion condition: it will never be empty?, it will either be nil or a hash with 'discard' and 'flashes' keys.
|
|\ \ \
| | | |
| | | | |
Coerce strings in create_join_table.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If you accidentally pass a string and a symbol, this breaks. So
we coerce them both to strings.
Fixes #7715
|
|\ \ \ \
| | | | |
| | | | | |
Fixed a typo
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
Postgresql adapter: fix handling of BC timestamps
|
| | | | | |
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Refactoring, testing and documenting pg_connection.distinct
|
|/ / / / |
|