strong_parameters 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|