merb-admin 0.4.5 → 0.4.6
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.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
|