| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This improves memory and performance without having to use symbols which
present DoS problems. Thanks @headius and @tenderlove for the
suggestion.
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 86c3dfbd47cb96af02daaa655963292b1a1b110e.
Conflicts:
activerecord/lib/active_record/attribute_methods/read.rb
Reason: whilst this increased performance, it also presents a DoS risk
via memory exhaustion if users were allowing user input to dictate the
arguments of read/write_attribute. I will investigate alternative ways
to cut down on string allocations here.
|
|\
| |
| | |
Cosmetic changes: remove trailing whitespaces from tests
|
|/ |
|
|\
| |
| | |
update AC::Parameters#permit documentation [ci skip]
|
|/
|
|
| |
bdd105d changes the behaviour of AC::Parameters#permit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
all the hash
params.require(:person).permit(:projects_attributes) was returning
=> {"projects_attributes"=>{"0"=>{"name"=>"Project 1"}}}
When should return
=> {}
You should be doing ...
params.require(:person).permit(projects_attributes: :name)
to get just the projects attributes you want to allow
|
| |
|
|\
| |
| | |
CacheDigests: Support templates in directories several levels deep
|
|/ |
|
|\
| |
| |
| |
| | |
senny/3675_assert_template_twice_against_same_partial
assert_template works when the same partial was rendered multiple times
|
| |
| |
| |
| |
| | |
this refactoring extracts the semi complex data structure of rendered locals
per view into into a separate class
|
| | |
|
|\ \
| |/
|/| |
No need to test for rack-cache present in gem file
|
|/
|
|
|
|
| |
as it's removed here
1fc795468525d8622cdca474a54c8310a514aa46
|
|\
| |
| | |
Expand the caveat about models in migrations in the rails guide.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is an attempt to address issue #6939, where an earlier migration
added a column to the database, and a later migration uses a model and
references that column.
When both migrations were run together with `rake db:migrate` the column
information in memory still referenced the old table structure.
Running the migrations separately fixed this, as a new connection was
then established before referencing the model. Explicitly calling
`reset_column_information` is a more reliable workaround.
|
|\ \
| | |
| | | |
Eager autoload Preloader classes
|
|/ /
| |
| |
| |
| | |
Without eager autoloading, these would be autoloaded
only when #preloader_for is called, which is too late
in threaded applications.
|
| |
| |
| |
| | |
deprecation message
|
|/
|
|
| |
config.action_view.javascript_expansions to exist
|
|\
| |
| | |
remove duplicated require statements in AR test cases
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Build failed with an error "invalid multibyte char (US-ASCII)" in these
files. Apparently, some UTF-8 char disguised as whitespace causes this.
Thanks @rafaelfranca
|
|\ \
| | |
| | | |
Offer instructions for pg gem when installed via Homebrew
|
| | | |
|
|\ \ \
| | | |
| | | | |
Moving to new hash syntax
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
activerecord/lib/active_record/persistence.rb
railties/lib/rails/generators/rails/resource_route/resource_route_generator.rb
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
This reverts commit 1c02b988641c201308e6b3de6457128878e47bd5.
|
| | | | |
| | | | |
| | | | |
| | | | | |
This reverts commit 93b1ca8bd34993f8958219f13c195f5acf8e55f6.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
feature related to inclusion of callbacks in mailers"
This reverts commit f16ec8c864ba12c2315713af76b11be5887cfa3a.
|
| | | | |
| | | | |
| | | | |
| | | | | |
related to inclusion of callbacks in mailers
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
This changed in rails/rails#43e14f8
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
testing push process first
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|