merb-admin 0.4.5 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +1 -1
- data/Rakefile +1 -1
- data/app/controllers/main.rb +28 -6
- data/app/helpers/main_helper.rb +1 -1
- data/app/views/main/_integer.html.erb +1 -7
- data/app/views/main/list.html.erb +30 -2
- data/lib/activerecord_support.rb +0 -1
- data/lib/datamapper_support.rb +0 -1
- data/lib/merb-admin.rb +1 -1
- data/schema/migrations/004_create_players_migration.rb +3 -3
- data/schema/migrations/005_create_teams_migration.rb +0 -1
- data/spec/models/datamapper/player.rb +2 -2
- data/spec/models/datamapper/team.rb +0 -1
- data/spec/requests/main_spec.rb +40 -20
- metadata +1 -1
data/README.markdown
CHANGED
data/Rakefile
CHANGED
@@ -9,7 +9,7 @@ AUTHOR = "Erik Michaels-Ober"
|
|
9
9
|
EMAIL = "sferik@gmail.com"
|
10
10
|
HOMEPAGE = "http://twitter.com/sferik"
|
11
11
|
SUMMARY = "MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data."
|
12
|
-
GEM_VERSION = "0.4.
|
12
|
+
GEM_VERSION = "0.4.6"
|
13
13
|
|
14
14
|
spec = Gem::Specification.new do |s|
|
15
15
|
s.rubyforge_project = "merb"
|
data/app/controllers/main.rb
CHANGED
@@ -14,6 +14,7 @@ class MerbAdmin::Main < MerbAdmin::Application
|
|
14
14
|
def list
|
15
15
|
options = {}
|
16
16
|
merge_query!(options)
|
17
|
+
merge_filter!(options)
|
17
18
|
merge_sort!(options)
|
18
19
|
merge_sort_reverse!(options)
|
19
20
|
|
@@ -128,15 +129,36 @@ class MerbAdmin::Main < MerbAdmin::Application
|
|
128
129
|
|
129
130
|
def merge_query!(options)
|
130
131
|
return unless params[:query]
|
131
|
-
|
132
|
-
|
132
|
+
statements = []
|
133
|
+
values = []
|
134
|
+
conditions = options[:conditions] || [""]
|
133
135
|
@properties.each do |property|
|
134
136
|
next unless property[:type] == :string
|
135
|
-
|
136
|
-
|
137
|
+
statements << "#{property[:name]} LIKE ?"
|
138
|
+
values << "%#{params[:query]}%"
|
137
139
|
end
|
138
|
-
conditions.
|
139
|
-
|
140
|
+
conditions[0] += statements.join(" OR ")
|
141
|
+
conditions += values
|
142
|
+
options.merge!(:conditions => conditions) unless conditions == [""]
|
143
|
+
end
|
144
|
+
|
145
|
+
def merge_filter!(options)
|
146
|
+
return unless params[:filter]
|
147
|
+
statements = []
|
148
|
+
values = []
|
149
|
+
conditions = options[:conditions] || [""]
|
150
|
+
params[:filter].each_pair do |key, value|
|
151
|
+
@properties.each do |property|
|
152
|
+
next unless property[:name] == key.to_sym
|
153
|
+
next unless property[:type] == :boolean
|
154
|
+
statements << "#{key} = ?"
|
155
|
+
values << (value == "true")
|
156
|
+
end
|
157
|
+
end
|
158
|
+
conditions[0] += statements.join(" AND ")
|
159
|
+
conditions += values
|
160
|
+
options.merge!(:conditions => conditions) unless conditions == [""]
|
161
|
+
puts options.inspect
|
140
162
|
end
|
141
163
|
|
142
164
|
def merge_sort!(options)
|
data/app/helpers/main_helper.rb
CHANGED
@@ -22,7 +22,7 @@ module Merb
|
|
22
22
|
if object.send(property_name) == true
|
23
23
|
Builder::XmlMarkup.new.img(:src => image_path("icon-yes.gif"), :alt => "True")
|
24
24
|
else
|
25
|
-
Builder::XmlMarkup.new.img(:src => image_path("icon-
|
25
|
+
Builder::XmlMarkup.new.img(:src => image_path("icon-no.gif"), :alt => "False")
|
26
26
|
end
|
27
27
|
when :date_time
|
28
28
|
value = object.send(property_name)
|
@@ -1,18 +1,12 @@
|
|
1
1
|
<%
|
2
|
-
flag_map = property[:flag_map]
|
3
2
|
property_name = property[:name]
|
3
|
+
length = property[:length]
|
4
4
|
label = property[:pretty_name]
|
5
5
|
required = !property[:nullable?] || property[:serial?]
|
6
6
|
%>
|
7
7
|
<div>
|
8
|
-
<% if flag_map # Enum or Flag type %>
|
9
|
-
<% collection = flag_map.map{|x| [x[1], x[1].to_s.capitalize.gsub('_', ' ')]}.sort{|a, b| a[1] <=> b[1]} %>
|
10
|
-
<%= select(property_name, :collection => collection, :label => label) %>
|
11
|
-
<% else %>
|
12
|
-
<% length = property[:length] %>
|
13
8
|
<%= text_field(property_name, :maxlength => length, :label => label) %>
|
14
9
|
<p class="help">
|
15
10
|
<%= required ? "Required." : "Optional." %>
|
16
11
|
</p>
|
17
|
-
<% end %>
|
18
12
|
</div>
|
@@ -1,6 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
params = request.params.except(:action, :controller, :model_name)
|
3
3
|
query = params[:query]
|
4
|
+
filter = params[:filter]
|
4
5
|
sort = params[:sort]
|
5
6
|
sort_reverse = params[:sort_reverse]
|
6
7
|
%>
|
@@ -10,20 +11,47 @@
|
|
10
11
|
<%= link_to("Add #{@abstract_model.pretty_name.downcase}", url(:admin_new, :model_name => @abstract_model.singular_name), :class => "addlink") %>
|
11
12
|
</li>
|
12
13
|
</ul>
|
13
|
-
<div class="module" id="changelist">
|
14
|
+
<div class="module filtered" id="changelist">
|
14
15
|
<div id="toolbar">
|
15
16
|
<form id="changelist-search" action="" method="get">
|
16
17
|
<div>
|
17
18
|
<label for="searchbar"><img src="<%= image_path("icon_searchbox.png") %>" alt="Search" /></label>
|
18
19
|
<input type="text" size="40" name="query" value="" id="searchbar" />
|
19
20
|
<input type="submit" value="Search" />
|
20
|
-
<% if query %>
|
21
|
+
<% if query || filter %>
|
21
22
|
<span class="small quiet"><%= @record_count %> <%= @record_count == 1 ? "result" : "results" %> (<a href="?"><%= @abstract_model.count %> total</a>)</span>
|
22
23
|
<% end %>
|
24
|
+
<% if filter %>
|
25
|
+
<% filter.each do |name, value| %>
|
26
|
+
<input type="hidden" name="filter[<%= name %>]" value="<%= value %>"/>
|
27
|
+
<% end %>
|
28
|
+
<% end %>
|
23
29
|
</div>
|
24
30
|
</form>
|
25
31
|
</div>
|
26
32
|
<script type="text/javascript">document.getElementById("searchbar").focus();</script>
|
33
|
+
<div id="changelist-filter">
|
34
|
+
<h2>Filter</h2>
|
35
|
+
<% @properties.each do |property| %>
|
36
|
+
<% property_type = property[:type] %>
|
37
|
+
<% property_name = property[:name] %>
|
38
|
+
<% property_pretty_name = property[:pretty_name] %>
|
39
|
+
<% if property_type == :boolean %>
|
40
|
+
<h3>By <%= property_pretty_name %></h3>
|
41
|
+
<ul>
|
42
|
+
<li class="<%= filter.nil? || filter[property_name].blank? ? "selected" : nil %>">
|
43
|
+
<a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (filter || {}).reject{|key, value| key.to_sym == property_name})) %>">All</a>
|
44
|
+
</li>
|
45
|
+
<li class="<%= filter && filter[property_name] == "true" ? "selected" : nil %>">
|
46
|
+
<a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (filter || {}).merge({property_name => "true"}))) %>">Yes</a>
|
47
|
+
</li>
|
48
|
+
<li class="<%= filter && filter[property_name] == "false" ? "selected" : nil %>">
|
49
|
+
<a href="?<%= Merb::Parse.params_to_query_string(params.merge(:filter => (filter || {}).merge({property_name => "false"}))) %>">No</a>
|
50
|
+
</li>
|
51
|
+
</ul>
|
52
|
+
<% end %>
|
53
|
+
<% end %>
|
54
|
+
</div>
|
27
55
|
<table cellspacing="0">
|
28
56
|
<thead>
|
29
57
|
<tr>
|
data/lib/activerecord_support.rb
CHANGED
data/lib/datamapper_support.rb
CHANGED
data/lib/merb-admin.rb
CHANGED
@@ -23,7 +23,7 @@ if defined?(Merb::Plugins)
|
|
23
23
|
|
24
24
|
# Slice metadata
|
25
25
|
self.description = "MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data."
|
26
|
-
self.version = "0.4.
|
26
|
+
self.version = "0.4.6"
|
27
27
|
self.author = "Erik Michaels-Ober"
|
28
28
|
|
29
29
|
# Stub classes loaded hook - runs before LoadClasses BootLoader
|
@@ -4,11 +4,11 @@ class CreatePlayersMigration < ActiveRecord::Migration
|
|
4
4
|
t.timestamps
|
5
5
|
t.datetime :deleted_at
|
6
6
|
t.integer :team_id
|
7
|
-
t.string :name, :limit =>
|
7
|
+
t.string :name, :limit => 100, :null => false
|
8
|
+
t.string :position, :limit => 50
|
8
9
|
t.integer :number
|
9
|
-
t.integer :position
|
10
|
-
t.integer :sex
|
11
10
|
t.float :batting_average, :default => 0.0
|
11
|
+
t.boolean :all_star, :default => false
|
12
12
|
t.boolean :injured, :default => false
|
13
13
|
t.date :born_on
|
14
14
|
t.timestamp :wake_at
|
@@ -7,10 +7,10 @@ class Player
|
|
7
7
|
property :deleted_at, ParanoidDateTime
|
8
8
|
property :team_id, Integer, :nullable => false, :index => true
|
9
9
|
property :name, String, :length => 100, :nullable => false
|
10
|
+
property :position, String
|
10
11
|
property :number, Integer, :nullable => false
|
11
|
-
property :position, Enum[:pitcher, :catcher, :first, :second, :third, :shortstop, :left, :center, :right]
|
12
|
-
property :sex, Enum[:male, :female]
|
13
12
|
property :batting_average, Float, :default => 0.0, :precision => 4, :scale => 3
|
13
|
+
property :all_star, Boolean, :default => false
|
14
14
|
property :injured, Boolean, :default => false
|
15
15
|
property :born_on, Date
|
16
16
|
property :wake_at, Time
|
@@ -7,7 +7,6 @@ class Team
|
|
7
7
|
property :league_id, Integer, :nullable => false, :index => true
|
8
8
|
property :division_id, Integer, :nullable => false, :index => true
|
9
9
|
property :name, String, :nullable => false, :index => true
|
10
|
-
property :colors, Flag[:beige, :black, :blue, :bronze, :brown, :cool, :copper, :cream, :gold, :gray, :green, :khaki, :maroon, :midnight, :navy, :orange, :pink, :purple, :red, :silver, :tan, :turquoise, :violet, :white, :yellow]
|
11
10
|
|
12
11
|
belongs_to :league
|
13
12
|
belongs_to :division
|
data/spec/requests/main_spec.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), '..', 'spec_helper.rb')
|
2
2
|
|
3
3
|
given "a player exists" do
|
4
|
-
@player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player 1"
|
4
|
+
@player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player 1")
|
5
5
|
end
|
6
6
|
|
7
7
|
given "a draft exists" do
|
@@ -11,7 +11,7 @@ end
|
|
11
11
|
given "two players exist" do
|
12
12
|
@players = []
|
13
13
|
2.times do |i|
|
14
|
-
@players << MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player #{i}"
|
14
|
+
@players << MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player #{i}")
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -23,12 +23,12 @@ given "three teams exist" do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
given "a player exists and a draft exists" do
|
26
|
-
@player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player 1"
|
26
|
+
@player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player 1")
|
27
27
|
@draft = MerbAdmin::AbstractModel.new("Draft").create(:player_id => rand(99999), :team_id => rand(99999), :date => Date.today, :round => rand(50), :pick => rand(30), :overall => rand(1500))
|
28
28
|
end
|
29
29
|
|
30
30
|
given "a player exists and three teams exist" do
|
31
|
-
@player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player 1"
|
31
|
+
@player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player 1")
|
32
32
|
@teams = []
|
33
33
|
3.times do |i|
|
34
34
|
@teams << MerbAdmin::AbstractModel.new("Team").create(:league_id => rand(99999), :division_id => rand(99999), :name => "Team #{i}")
|
@@ -46,7 +46,7 @@ end
|
|
46
46
|
given "twenty players exist" do
|
47
47
|
@players = []
|
48
48
|
20.times do |i|
|
49
|
-
@players << MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player #{i}"
|
49
|
+
@players << MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => rand(99), :name => "Player #{i}")
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
@@ -91,8 +91,8 @@ describe "MerbAdmin" do
|
|
91
91
|
|
92
92
|
describe "list with query" do
|
93
93
|
before(:each) do
|
94
|
-
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :
|
95
|
-
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :
|
94
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :position => "second")
|
95
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :position => "pitcher")
|
96
96
|
@response = request(url(:admin_list, :model_name => "player"), :params => {:query => "Jackie Robinson"})
|
97
97
|
end
|
98
98
|
|
@@ -111,8 +111,8 @@ describe "MerbAdmin" do
|
|
111
111
|
|
112
112
|
describe "list with sort" do
|
113
113
|
before(:each) do
|
114
|
-
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :
|
115
|
-
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :
|
114
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :position => "second")
|
115
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :position => "pitcher")
|
116
116
|
@response = request(url(:admin_list, :model_name => "player"), :params => {:sort => "name"})
|
117
117
|
end
|
118
118
|
|
@@ -127,8 +127,8 @@ describe "MerbAdmin" do
|
|
127
127
|
|
128
128
|
describe "list with reverse sort" do
|
129
129
|
before(:each) do
|
130
|
-
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :
|
131
|
-
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :
|
130
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :position => "second")
|
131
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :position => "pitcher")
|
132
132
|
@response = request(url(:admin_list, :model_name => "player"), :params => {:sort => "name", :sort_reverse => "true"})
|
133
133
|
end
|
134
134
|
|
@@ -141,6 +141,26 @@ describe "MerbAdmin" do
|
|
141
141
|
end
|
142
142
|
end
|
143
143
|
|
144
|
+
describe "list with boolean filter" do
|
145
|
+
before(:each) do
|
146
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 18, :name => "Moises Alou", :position => "left", :injured => true)
|
147
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 5, :name => "David Wright", :position => "third", :injured => false)
|
148
|
+
@response = request(url(:admin_list, :model_name => "player"), :params => {:filter => {:injured => true}})
|
149
|
+
end
|
150
|
+
|
151
|
+
it "should respond sucessfully" do
|
152
|
+
@response.should be_successful
|
153
|
+
end
|
154
|
+
|
155
|
+
it "should contain a correct result" do
|
156
|
+
@response.body.should contain("Moises Alou")
|
157
|
+
end
|
158
|
+
|
159
|
+
it "should not contain an incorrect result" do
|
160
|
+
@response.body.should_not contain("David Wright")
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
144
164
|
describe "list with 2 objects", :given => "two players exist" do
|
145
165
|
before(:each) do
|
146
166
|
MerbAdmin[:paginate] = true
|
@@ -298,7 +318,7 @@ describe "MerbAdmin" do
|
|
298
318
|
|
299
319
|
describe "create" do
|
300
320
|
before(:each) do
|
301
|
-
@response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position =>
|
321
|
+
@response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => "second"}})
|
302
322
|
end
|
303
323
|
|
304
324
|
it "should redirect to list" do
|
@@ -312,7 +332,7 @@ describe "MerbAdmin" do
|
|
312
332
|
|
313
333
|
describe "create and edit" do
|
314
334
|
before(:each) do
|
315
|
-
@response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position =>
|
335
|
+
@response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => "second"}, :_continue => true})
|
316
336
|
end
|
317
337
|
|
318
338
|
it "should redirect to edit" do
|
@@ -326,7 +346,7 @@ describe "MerbAdmin" do
|
|
326
346
|
|
327
347
|
describe "create and add another" do
|
328
348
|
before(:each) do
|
329
|
-
@response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position =>
|
349
|
+
@response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => "second"}, :_add_another => true})
|
330
350
|
end
|
331
351
|
|
332
352
|
it "should redirect to new" do
|
@@ -340,7 +360,7 @@ describe "MerbAdmin" do
|
|
340
360
|
|
341
361
|
describe "create with has-one association", :given => "a draft exists" do
|
342
362
|
before(:each) do
|
343
|
-
@response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position =>
|
363
|
+
@response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => "second"}, :associations => {:draft => @draft.id}})
|
344
364
|
end
|
345
365
|
|
346
366
|
it "should create a new object" do
|
@@ -383,7 +403,7 @@ describe "MerbAdmin" do
|
|
383
403
|
|
384
404
|
describe "update", :given => "a player exists" do
|
385
405
|
before(:each) do
|
386
|
-
@response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1
|
406
|
+
@response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1}})
|
387
407
|
end
|
388
408
|
|
389
409
|
it "should redirect to list" do
|
@@ -397,7 +417,7 @@ describe "MerbAdmin" do
|
|
397
417
|
|
398
418
|
describe "update and edit", :given => "a player exists" do
|
399
419
|
before(:each) do
|
400
|
-
@response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1
|
420
|
+
@response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1}, :_continue => true})
|
401
421
|
end
|
402
422
|
|
403
423
|
it "should redirect to edit" do
|
@@ -411,7 +431,7 @@ describe "MerbAdmin" do
|
|
411
431
|
|
412
432
|
describe "update and add another", :given => "a player exists" do
|
413
433
|
before(:each) do
|
414
|
-
@response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1
|
434
|
+
@response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1}, :_add_another => true})
|
415
435
|
end
|
416
436
|
|
417
437
|
it "should redirect to new" do
|
@@ -425,7 +445,7 @@ describe "MerbAdmin" do
|
|
425
445
|
|
426
446
|
describe "update with has-one association", :given => "a player exists and a draft exists" do
|
427
447
|
before(:each) do
|
428
|
-
@response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position =>
|
448
|
+
@response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :position => "second"}, :associations => {:draft => @draft.id}})
|
429
449
|
end
|
430
450
|
|
431
451
|
it "should update an object that already exists" do
|
@@ -458,7 +478,7 @@ describe "MerbAdmin" do
|
|
458
478
|
|
459
479
|
describe "update with missing object" do
|
460
480
|
before(:each) do
|
461
|
-
@response = request(url(:admin_update, :model_name => "player", :id => 1), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1
|
481
|
+
@response = request(url(:admin_update, :model_name => "player", :id => 1), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1}})
|
462
482
|
end
|
463
483
|
|
464
484
|
it "should raise NotFound" do
|