strong_parameters 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +17 -8
- data/lib/action_controller/parameters.rb +8 -3
- data/lib/active_model/forbidden_attributes_protection.rb +1 -1
- data/lib/generators/rails/USAGE +12 -0
- data/lib/generators/rails/strong_parameters_controller_generator.rb +10 -0
- data/lib/generators/rails/templates/controller.rb +94 -0
- data/lib/strong_parameters/railtie.rb +11 -0
- data/lib/strong_parameters/version.rb +1 -1
- data/lib/strong_parameters.rb +1 -0
- data/test/controller_generator_test.rb +31 -0
- data/test/nested_parameters_test.rb +54 -3
- metadata +26 -13
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +0 -219
data/README.rdoc
CHANGED
@@ -10,16 +10,16 @@ In addition, parameters can be marked as required and flow through a predefined
|
|
10
10
|
def create
|
11
11
|
Person.create(params[:person])
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
# This will pass with flying colors as long as there's a person key in the parameters, otherwise
|
15
|
-
# it'll raise a ActionController::MissingParameter exception, which will get caught by
|
15
|
+
# it'll raise a ActionController::MissingParameter exception, which will get caught by
|
16
16
|
# ActionController::Base and turned into that 400 Bad Request reply.
|
17
17
|
def update
|
18
|
-
redirect_to current_account.people.find(params[:id]).tap
|
18
|
+
redirect_to current_account.people.find(params[:id]).tap { |person|
|
19
19
|
person.update_attributes!(person_params)
|
20
|
-
|
20
|
+
}
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
private
|
24
24
|
# Using a private method to encapsulate the permissible parameters is just a good pattern
|
25
25
|
# since you'll be able to reuse the same permit list between create and update. Also, you
|
@@ -35,10 +35,19 @@ You can also use permit on nested parameters, like:
|
|
35
35
|
|
36
36
|
Thanks to Nick Kallen for the permit idea!
|
37
37
|
|
38
|
-
==
|
38
|
+
== Installation
|
39
|
+
|
40
|
+
In Gemfile:
|
39
41
|
|
40
|
-
|
42
|
+
gem 'strong_parameters'
|
43
|
+
|
44
|
+
and then run `bundle`. To activate the strong parameters, you need to include this module in
|
45
|
+
every model you want protected.
|
46
|
+
|
47
|
+
class Post < ActiveRecord::Base
|
48
|
+
include ActiveModel::ForbiddenAttributesProtection
|
49
|
+
end
|
41
50
|
|
42
51
|
== Compatibility
|
43
52
|
|
44
|
-
Due to a testing issue, this plugin is only fully compatible with rails/3-2-stable rev 275ee0dc7b and forward as well as rails/master rev b49a7ddce1 and forward.
|
53
|
+
Due to a testing issue, this plugin is only fully compatible with rails/3-2-stable rev 275ee0dc7b and forward as well as rails/master rev b49a7ddce1 and forward.
|
@@ -29,7 +29,7 @@ module ActionController
|
|
29
29
|
def require(key)
|
30
30
|
self[key].presence || raise(ActionController::ParameterMissing.new(key))
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
alias :required :require
|
34
34
|
|
35
35
|
def permit(*filters)
|
@@ -37,7 +37,7 @@ module ActionController
|
|
37
37
|
|
38
38
|
filters.each do |filter|
|
39
39
|
case filter
|
40
|
-
when Symbol then
|
40
|
+
when Symbol, String then
|
41
41
|
params[filter] = self[filter] if has_key?(filter)
|
42
42
|
when Hash then
|
43
43
|
self.slice(*filter.keys).each do |key, value|
|
@@ -93,6 +93,11 @@ module ActionController
|
|
93
93
|
def each_element(object)
|
94
94
|
if object.is_a?(Array)
|
95
95
|
object.map { |el| yield el }.compact
|
96
|
+
# fields_for on an array of records uses numeric hash keys
|
97
|
+
elsif object.is_a?(Hash) && object.keys.all? { |k| k =~ /\A-?\d+\z/ }
|
98
|
+
hash = object.class.new
|
99
|
+
object.each { |k,v| hash[k] = yield v }
|
100
|
+
hash
|
96
101
|
else
|
97
102
|
yield object
|
98
103
|
end
|
@@ -104,7 +109,7 @@ module ActionController
|
|
104
109
|
|
105
110
|
included do
|
106
111
|
rescue_from(ActionController::ParameterMissing) do |parameter_missing_exception|
|
107
|
-
render text
|
112
|
+
render :text => "Required parameter missing: #{parameter_missing_exception.param}", :status => :bad_request
|
108
113
|
end
|
109
114
|
end
|
110
115
|
|
@@ -4,7 +4,7 @@ module ActiveModel
|
|
4
4
|
|
5
5
|
module ForbiddenAttributesProtection
|
6
6
|
def sanitize_for_mass_assignment(new_attributes, options = {})
|
7
|
-
if !new_attributes.respond_to?(:permitted?) ||
|
7
|
+
if !new_attributes.respond_to?(:permitted?) || new_attributes.permitted?
|
8
8
|
super
|
9
9
|
else
|
10
10
|
raise ActiveModel::ForbiddenAttributes
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Description:
|
2
|
+
Stubs out a scaffolded controller and its views. Different from rails
|
3
|
+
scaffold_controller, it uses strong_parameters to whitelist permissible
|
4
|
+
attributes in a private method.
|
5
|
+
Pass the model name, either CamelCased or under_scored. The controller
|
6
|
+
name is retrieved as a pluralized version of the model name.
|
7
|
+
|
8
|
+
To create a controller within a module, specify the model name as a
|
9
|
+
path like 'parent_module/controller_name'.
|
10
|
+
|
11
|
+
This generates a controller class in app/controllers and invokes helper,
|
12
|
+
template engine and test framework generators.
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'rails/generators/rails/scaffold_controller/scaffold_controller_generator'
|
2
|
+
|
3
|
+
module Rails
|
4
|
+
module Generators
|
5
|
+
class StrongParametersControllerGenerator < ScaffoldControllerGenerator
|
6
|
+
argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
|
7
|
+
source_root File.expand_path("../templates", __FILE__)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
<% module_namespacing do -%>
|
2
|
+
class <%= controller_class_name %>Controller < ApplicationController
|
3
|
+
# GET <%= route_url %>
|
4
|
+
# GET <%= route_url %>.json
|
5
|
+
def index
|
6
|
+
@<%= plural_table_name %> = <%= orm_class.all(class_name) %>
|
7
|
+
|
8
|
+
respond_to do |format|
|
9
|
+
format.html # index.html.erb
|
10
|
+
format.json { render json: <%= "@#{plural_table_name}" %> }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# GET <%= route_url %>/1
|
15
|
+
# GET <%= route_url %>/1.json
|
16
|
+
def show
|
17
|
+
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
|
18
|
+
|
19
|
+
respond_to do |format|
|
20
|
+
format.html # show.html.erb
|
21
|
+
format.json { render json: <%= "@#{singular_table_name}" %> }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# GET <%= route_url %>/new
|
26
|
+
# GET <%= route_url %>/new.json
|
27
|
+
def new
|
28
|
+
@<%= singular_table_name %> = <%= orm_class.build(class_name) %>
|
29
|
+
|
30
|
+
respond_to do |format|
|
31
|
+
format.html # new.html.erb
|
32
|
+
format.json { render json: <%= "@#{singular_table_name}" %> }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# GET <%= route_url %>/1/edit
|
37
|
+
def edit
|
38
|
+
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
|
39
|
+
end
|
40
|
+
|
41
|
+
# POST <%= route_url %>
|
42
|
+
# POST <%= route_url %>.json
|
43
|
+
def create
|
44
|
+
@<%= singular_table_name %> = <%= orm_class.build(class_name, "#{singular_table_name}_params") %>
|
45
|
+
|
46
|
+
respond_to do |format|
|
47
|
+
if @<%= orm_instance.save %>
|
48
|
+
format.html { redirect_to @<%= singular_table_name %>, notice: <%= "'#{human_name} was successfully created.'" %> }
|
49
|
+
format.json { render json: <%= "@#{singular_table_name}" %>, status: :created, location: <%= "@#{singular_table_name}" %> }
|
50
|
+
else
|
51
|
+
format.html { render action: "new" }
|
52
|
+
format.json { render json: <%= "@#{orm_instance.errors}" %>, status: :unprocessable_entity }
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# PATCH/PUT <%= route_url %>/1
|
58
|
+
# PATCH/PUT <%= route_url %>/1.json
|
59
|
+
def update
|
60
|
+
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
|
61
|
+
|
62
|
+
respond_to do |format|
|
63
|
+
if @<%= orm_instance.update_attributes("#{singular_table_name}_params") %>
|
64
|
+
format.html { redirect_to @<%= singular_table_name %>, notice: <%= "'#{human_name} was successfully updated.'" %> }
|
65
|
+
format.json { head :no_content }
|
66
|
+
else
|
67
|
+
format.html { render action: "edit" }
|
68
|
+
format.json { render json: <%= "@#{orm_instance.errors}" %>, status: :unprocessable_entity }
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
# DELETE <%= route_url %>/1
|
74
|
+
# DELETE <%= route_url %>/1.json
|
75
|
+
def destroy
|
76
|
+
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
|
77
|
+
@<%= orm_instance.destroy %>
|
78
|
+
|
79
|
+
respond_to do |format|
|
80
|
+
format.html { redirect_to <%= index_helper %>_url }
|
81
|
+
format.json { head :no_content }
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
private
|
86
|
+
|
87
|
+
# Use this method to whitelist the permissible parameters. Example:
|
88
|
+
# params.require(:person).permit(:name, :age)
|
89
|
+
# Also, you can specialize this method with per-user checking of permissible attributes.
|
90
|
+
def <%= "#{singular_table_name}_params" %>
|
91
|
+
params.require(<%= ":#{singular_table_name}" %>).permit(<%= attributes.map {|a| ":#{a.name}" }.sort.join(', ') %>)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
<% end -%>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'rails/railtie'
|
2
|
+
|
3
|
+
module StrongParameters
|
4
|
+
class Railtie < ::Rails::Railtie
|
5
|
+
if config.respond_to?(:app_generators)
|
6
|
+
config.app_generators.scaffold_controller = :strong_parameters_controller
|
7
|
+
else
|
8
|
+
config.generators.scaffold_controller = :strong_parameters_controller
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
data/lib/strong_parameters.rb
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'rails/generators/test_case'
|
2
|
+
require 'generators/rails/strong_parameters_controller_generator'
|
3
|
+
|
4
|
+
class StrongParametersControllerGeneratorTest < Rails::Generators::TestCase
|
5
|
+
tests Rails::Generators::StrongParametersControllerGenerator
|
6
|
+
arguments %w(User name:string age:integer --orm=none)
|
7
|
+
destination File.expand_path("../tmp", File.dirname(__FILE__))
|
8
|
+
setup :prepare_destination
|
9
|
+
|
10
|
+
def test_controller_content
|
11
|
+
run_generator
|
12
|
+
|
13
|
+
assert_file "app/controllers/users_controller.rb" do |content|
|
14
|
+
|
15
|
+
assert_instance_method :create, content do |m|
|
16
|
+
assert_match(/@user = User\.new\(user_params\)/, m)
|
17
|
+
assert_match(/@user\.save/, m)
|
18
|
+
assert_match(/@user\.errors/, m)
|
19
|
+
end
|
20
|
+
|
21
|
+
assert_instance_method :update, content do |m|
|
22
|
+
assert_match(/@user = User\.find\(params\[:id\]\)/, m)
|
23
|
+
assert_match(/@user\.update_attributes\(user_params\)/, m)
|
24
|
+
assert_match(/@user\.errors/, m)
|
25
|
+
end
|
26
|
+
|
27
|
+
assert_match(/def user_params/, content)
|
28
|
+
assert_match(/params\.require\(:user\)\.permit\(:age, :name\)/, content)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -34,15 +34,30 @@ class NestedParametersTest < ActiveSupport::TestCase
|
|
34
34
|
|
35
35
|
test "nested arrays with strings" do
|
36
36
|
params = ActionController::Parameters.new({
|
37
|
-
book
|
38
|
-
genres
|
37
|
+
:book => {
|
38
|
+
:genres => ["Tragedy"]
|
39
39
|
}
|
40
40
|
})
|
41
41
|
|
42
|
-
permitted = params.permit book
|
42
|
+
permitted = params.permit :book => :genres
|
43
43
|
assert_equal ["Tragedy"], permitted[:book][:genres]
|
44
44
|
end
|
45
45
|
|
46
|
+
test "permit may specify symbols or strings" do
|
47
|
+
params = ActionController::Parameters.new({
|
48
|
+
book: {
|
49
|
+
title: "Romeo and Juliet",
|
50
|
+
author: "William Shakespeare"
|
51
|
+
},
|
52
|
+
magazine: "Shakespeare Today"
|
53
|
+
})
|
54
|
+
|
55
|
+
permitted = params.permit({ book: ["title", :author] }, "magazine")
|
56
|
+
assert_equal "Romeo and Juliet", permitted[:book][:title]
|
57
|
+
assert_equal "William Shakespeare", permitted[:book][:author]
|
58
|
+
assert_equal "Shakespeare Today", permitted[:magazine]
|
59
|
+
end
|
60
|
+
|
46
61
|
test "nested array with strings that should be hashes" do
|
47
62
|
params = ActionController::Parameters.new({
|
48
63
|
book: {
|
@@ -77,4 +92,40 @@ class NestedParametersTest < ActiveSupport::TestCase
|
|
77
92
|
permitted = params.permit book: { genre: :type }
|
78
93
|
assert_nil permitted[:book][:genre]
|
79
94
|
end
|
95
|
+
|
96
|
+
test "fields_for_style_nested_params" do
|
97
|
+
params = ActionController::Parameters.new({
|
98
|
+
book: {
|
99
|
+
authors_attributes: {
|
100
|
+
:'0' => { name: 'William Shakespeare', age_of_death: '52' },
|
101
|
+
:'1' => { name: 'Unattributed Assistant' }
|
102
|
+
}
|
103
|
+
}
|
104
|
+
})
|
105
|
+
permitted = params.permit book: { authors_attributes: [ :name ] }
|
106
|
+
|
107
|
+
assert_not_nil permitted[:book][:authors_attributes]['0']
|
108
|
+
assert_not_nil permitted[:book][:authors_attributes]['1']
|
109
|
+
assert_nil permitted[:book][:authors_attributes]['0'][:age_of_death]
|
110
|
+
assert_equal 'William Shakespeare', permitted[:book][:authors_attributes]['0'][:name]
|
111
|
+
assert_equal 'Unattributed Assistant', permitted[:book][:authors_attributes]['1'][:name]
|
112
|
+
end
|
113
|
+
|
114
|
+
test "fields_for_style_nested_params with negative numbers" do
|
115
|
+
params = ActionController::Parameters.new({
|
116
|
+
book: {
|
117
|
+
authors_attributes: {
|
118
|
+
:'-1' => {name: 'William Shakespeare', age_of_death: '52'},
|
119
|
+
:'-2' => {name: 'Unattributed Assistant'}
|
120
|
+
}
|
121
|
+
}
|
122
|
+
})
|
123
|
+
permitted = params.permit book: {authors_attributes: [:name]}
|
124
|
+
|
125
|
+
assert_not_nil permitted[:book][:authors_attributes]['-1']
|
126
|
+
assert_not_nil permitted[:book][:authors_attributes]['-2']
|
127
|
+
assert_nil permitted[:book][:authors_attributes]['-1'][:age_of_death]
|
128
|
+
assert_equal 'William Shakespeare', permitted[:book][:authors_attributes]['-1'][:name]
|
129
|
+
assert_equal 'Unattributed Assistant', permitted[:book][:authors_attributes]['-2'][:name]
|
130
|
+
end
|
80
131
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: strong_parameters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-09-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionpack
|
16
|
-
requirement: &
|
16
|
+
requirement: &2164465820 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.2.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2164465820
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activemodel
|
27
|
-
requirement: &
|
27
|
+
requirement: &2164465300 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,21 @@ dependencies:
|
|
32
32
|
version: 3.2.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2164465300
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: railties
|
38
|
+
requirement: &2164464820 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 3.2.0
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *2164464820
|
36
47
|
- !ruby/object:Gem::Dependency
|
37
48
|
name: rake
|
38
|
-
requirement: &
|
49
|
+
requirement: &2164464440 !ruby/object:Gem::Requirement
|
39
50
|
none: false
|
40
51
|
requirements:
|
41
52
|
- - ! '>='
|
@@ -43,7 +54,7 @@ dependencies:
|
|
43
54
|
version: '0'
|
44
55
|
type: :development
|
45
56
|
prerelease: false
|
46
|
-
version_requirements: *
|
57
|
+
version_requirements: *2164464440
|
47
58
|
description:
|
48
59
|
email:
|
49
60
|
- david@heinemeierhansson.com
|
@@ -53,6 +64,10 @@ extra_rdoc_files: []
|
|
53
64
|
files:
|
54
65
|
- lib/action_controller/parameters.rb
|
55
66
|
- lib/active_model/forbidden_attributes_protection.rb
|
67
|
+
- lib/generators/rails/strong_parameters_controller_generator.rb
|
68
|
+
- lib/generators/rails/templates/controller.rb
|
69
|
+
- lib/generators/rails/USAGE
|
70
|
+
- lib/strong_parameters/railtie.rb
|
56
71
|
- lib/strong_parameters/version.rb
|
57
72
|
- lib/strong_parameters.rb
|
58
73
|
- MIT-LICENSE
|
@@ -61,8 +76,7 @@ files:
|
|
61
76
|
- test/action_controller_required_params_test.rb
|
62
77
|
- test/action_controller_tainted_params_test.rb
|
63
78
|
- test/active_model_mass_assignment_taint_protection_test.rb
|
64
|
-
- test/
|
65
|
-
- test/dummy/log/test.log
|
79
|
+
- test/controller_generator_test.rb
|
66
80
|
- test/nested_parameters_test.rb
|
67
81
|
- test/parameters_require_test.rb
|
68
82
|
- test/parameters_taint_test.rb
|
@@ -87,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
87
101
|
version: '0'
|
88
102
|
requirements: []
|
89
103
|
rubyforge_project:
|
90
|
-
rubygems_version: 1.8.
|
104
|
+
rubygems_version: 1.8.7
|
91
105
|
signing_key:
|
92
106
|
specification_version: 3
|
93
107
|
summary: Permitted and required parameters for Action Pack
|
@@ -95,8 +109,7 @@ test_files:
|
|
95
109
|
- test/action_controller_required_params_test.rb
|
96
110
|
- test/action_controller_tainted_params_test.rb
|
97
111
|
- test/active_model_mass_assignment_taint_protection_test.rb
|
98
|
-
- test/
|
99
|
-
- test/dummy/log/test.log
|
112
|
+
- test/controller_generator_test.rb
|
100
113
|
- test/nested_parameters_test.rb
|
101
114
|
- test/parameters_require_test.rb
|
102
115
|
- test/parameters_taint_test.rb
|
data/test/dummy/db/test.sqlite3
DELETED
File without changes
|
data/test/dummy/log/test.log
DELETED
@@ -1,219 +0,0 @@
|
|
1
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
2
|
-
Processing by PeopleController#create as HTML
|
3
|
-
Parameters: {"person"=>{"name"=>"Mjallo!"}}
|
4
|
-
Rendered text template (0.0ms)
|
5
|
-
Completed 200 OK in 7ms (Views: 6.4ms | ActiveRecord: 0.0ms)
|
6
|
-
[1m[35m (0.1ms)[0m rollback transaction
|
7
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
8
|
-
Processing by PeopleController#create as HTML
|
9
|
-
Parameters: {"person"=>{"name"=>"Mjallo!"}}
|
10
|
-
Rendered text template (0.0ms)
|
11
|
-
Completed 200 OK in 7ms (Views: 6.4ms | ActiveRecord: 0.0ms)
|
12
|
-
[1m[35m (0.1ms)[0m rollback transaction
|
13
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
14
|
-
Processing by PeopleController#create_with_permit as HTML
|
15
|
-
Parameters: {"person"=>{"name"=>"Mjallo!"}}
|
16
|
-
Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms)
|
17
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
18
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
19
|
-
Processing by PeopleController#create as HTML
|
20
|
-
Parameters: {"user"=>{"name"=>"Mjallo!"}}
|
21
|
-
Completed 500 Internal Server Error in 0ms
|
22
|
-
[1m[35m (0.1ms)[0m rollback transaction
|
23
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
24
|
-
Processing by PeopleController#create as HTML
|
25
|
-
Parameters: {"person"=>{"name"=>"Mjallo!"}}
|
26
|
-
Completed 500 Internal Server Error in 8ms
|
27
|
-
[1m[35m (0.1ms)[0m rollback transaction
|
28
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
29
|
-
Processing by PeopleController#create as HTML
|
30
|
-
Parameters: {"user"=>{"name"=>"Mjallo!"}}
|
31
|
-
Completed 500 Internal Server Error in 0ms
|
32
|
-
[1m[35m (0.1ms)[0m rollback transaction
|
33
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
34
|
-
Processing by PeopleController#create as HTML
|
35
|
-
Parameters: {"person"=>{"name"=>"Mjallo!"}}
|
36
|
-
Completed 200 OK in 0ms (ActiveRecord: 0.0ms)
|
37
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
38
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
39
|
-
Processing by PeopleController#create as HTML
|
40
|
-
Parameters: {"user"=>{"name"=>"Mjallo!"}}
|
41
|
-
Completed 400 Bad Request in 0ms (ActiveRecord: 0.0ms)
|
42
|
-
[1m[35m (0.1ms)[0m rollback transaction
|
43
|
-
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
44
|
-
Processing by PeopleController#create as HTML
|
45
|
-
Parameters: {"person"=>{"name"=>"Mjallo!"}}
|
46
|
-
Completed 200 OK in 0ms (ActiveRecord: 0.0ms)
|
47
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
48
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
49
|
-
Processing by PeopleController#create as HTML
|
50
|
-
Parameters: {"user"=>{"name"=>"Mjallo!"}}
|
51
|
-
Completed 400 Bad Request in 0ms (ActiveRecord: 0.0ms)
|
52
|
-
[1m[35m (0.1ms)[0m rollback transaction
|
53
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
54
|
-
Processing by PeopleController#create as HTML
|
55
|
-
Parameters: {"person"=>{"name"=>"Mjallo!"}}
|
56
|
-
Completed 200 OK in 0ms (ActiveRecord: 0.0ms)
|
57
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
58
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
59
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
60
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
61
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
62
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
63
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
64
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
65
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
66
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
67
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
68
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
69
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
70
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
71
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
72
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
73
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
74
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
75
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
76
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
77
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
78
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
79
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
80
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
81
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
82
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
83
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
84
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
85
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
86
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
87
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
88
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
89
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
90
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
91
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
92
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
93
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
94
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
95
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
96
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
97
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
98
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
99
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
100
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
101
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
102
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
103
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
104
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
105
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
106
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
107
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
108
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
109
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
110
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
111
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
112
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
113
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
114
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
115
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
116
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
117
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
118
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
119
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
120
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
121
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
122
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
123
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
124
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
125
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
126
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
127
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
128
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
129
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
130
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
131
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
132
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
133
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
134
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
135
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
136
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
137
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
138
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
139
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
140
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
141
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
142
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
143
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
144
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
145
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
146
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
147
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
148
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
149
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
150
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
151
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
152
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
153
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
154
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
155
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
156
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
157
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
158
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
159
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
160
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
161
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
162
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
163
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
164
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
165
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
166
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
167
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
168
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
169
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
170
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
171
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
172
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
173
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
174
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
175
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
176
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
177
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
178
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
179
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
180
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
181
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
182
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
183
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
184
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
185
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
186
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
187
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
188
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
189
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
190
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
191
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
192
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
193
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
194
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
195
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
196
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
197
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
198
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
199
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
200
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
201
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
202
|
-
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
203
|
-
Processing by PeopleController#create as HTML
|
204
|
-
Parameters: {"user"=>{"name"=>"Mjallo!"}}
|
205
|
-
Completed 400 Bad Request in 0ms (ActiveRecord: 0.0ms)
|
206
|
-
[1m[35m (0.1ms)[0m rollback transaction
|
207
|
-
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
208
|
-
Processing by PeopleController#create as HTML
|
209
|
-
Parameters: {"person"=>{"name"=>"Mjallo!"}}
|
210
|
-
Completed 200 OK in 0ms (ActiveRecord: 0.0ms)
|
211
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
212
|
-
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
213
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
214
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
215
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
216
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
217
|
-
[1m[35m (0.0ms)[0m rollback transaction
|
218
|
-
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
219
|
-
[1m[35m (0.0ms)[0m rollback transaction
|