I am a bit confused as to why I am getting an error updating an
object.
This is the ERROR: Couldn't find User without an ID
In my development.log file I noticed the following when trying to
initiate the update:
Processing AdminController#update_user (for 127.0.0.1 at 2007-02-16
13:20:23) [POST]
Session ID: 2a5030c37fa9726e6e29d7a024ce97ab
Parameters: {"user"=>{"name"=>"joseph",
"hashed_password"=>"3708cf23bf5bcd14a2383a4fb24c4af1fb4fb352",
"user_type"=>"nelnet", "user_role"=>"user"}, "commit"=>" Update User
", "action"=>"update_user", "id"=>"11", "controller"=>"admin"}
e[4;36;1mUser Load (0.000761)e[0m e[0;1mSELECT * FROM users WHERE
(users.id = '11') LIMIT 1e[0m
e[4;35;1mUser Columns (0.002650)e[0m e[0mSHOW FIELDS FROM
userse[0m
e[4;36;1mSQL (0.001330)e[0m e[0;1mBEGINe[0m
e[4;35;1mUser Load (0.000497)e[0m e[0mSELECT * FROM users WHERE
(users.name = 'joseph' AND users.id <> 11) LIMIT 1e[0m
e[4;36;1mSQL (0.000096)e[0m e[0;1mCOMMITe[0m
Redirected to http://localhost:3000/admin/edit_user
Completed in 0.01380 (72 reqs/sec) | DB: 0.00533 (38%) | 302 Found
[http://localhost/admin/update_user/11]
What I find most confusing is this line:
SELECT * FROM users WHERE (users.name = 'joseph' AND users.id <> 11)
LIMIT 1e
I am confused why Rails would make this call with update_attributes.
I am lost.
Any help would be greatly appreciated!
Thanks,
-E
Here is snippets of my Admin controller code that is in question:
def edit_user
@user = User.find(params[:id])
end
def update_user
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
flash[:notice] = "User #{@userUpdate.name} updated successfully"
redirect_to(:action =>:list_users)
else
flash[:notice] = "Unable to process change, please try again"
redirect_to(:action =>:edit_user)
end
end
Here is the edit_user.rhtml file:
<h1>Update User</h1>
<%= start_form_tag :action => 'update_user', :id => @user %>
<%= render :partial => 'form' %>
<%= submit_tag " Update User " %>
<%= end_form_tag %>
<%= link_to 'Back', :action => 'list_users' %>
Here is the _form.rhtml file:
<%= error_messages_for 'user' %>
<!--[form:call]-->
<table>
<tr>
<td>Username:</td>
<td><%= text_field("user","name") %></td>
</tr>
<tr>
<td>Password:</td>
<td><%= password_field("user","hashed_password") %></td>
</tr>
<tr>
<td>User Type:</td>
<td><%= select("user","user_type", %w{nelnet wsu}) %></td>
</tr>
<tr>
<td>User Role:</td>
<td><%= select("user","user_role", %w{user super admin}) %><td>
</tr>
<table>
<!--[eoform:call]-->
Any help would be great