ok, so here’s my problem… i’ll add the code below… I want to
display users, and as an administrator, give other users
administrative priviledges… so, I would perform this in the users
index page… displaying all users and adding a checkbox next to each
one to give administrative priviledges…
I’ve tried two methods to do this, the first is submit_tag, and the
second is link_to… When I use submit_tag, then theoretically the
boolean value for ‘administrator’ in the database should be updated,
but it’s not… when I use link_to, the page is updated (i.e. the
checkbox shows the correct value), but the database is not… also,
i’m not redirected to where i’m intended… in the ‘update’ action of
the controller, I’ve put:
but I get redirected to ‘/users/:id’, with the id of the user i’ve
just edited… why is this?
anyway, here’s the /users/index.html.erb code, i’ve been stumped on
this for a while now, and haven’t been able to find anything via
google… any help appreciated… cheers!
users
Login
Email
Administrator
<% @users.each do |user| %>
<%=h user.login %>
<%=h user.email %>
<% form_for user do |f| %>
<% if logged_in? && current_user.administrator? %>
<td>
<%= f.check_box :administrator %></p>
</td>
<% end %>
<div id="functions">
<td><%= link_to 'Delete', user, :confirm => 'Are you sure?',
:method => :delete %></td>
<td><%= link_to 'Save', user, :action => :update %></td>
</div>
<!--<td>
<p><%= submit_tag 'Save' %></p>
</td>-->
<% end %>
checkbox shows the correct value), but the database is not… also,
google… any help appreciated… cheers!
<%=h user.login %>
:method => :delete %>
<%= link_to ‘Save’, user, :action => :update %>
<% end %>
<% end %>
Hello,
While submit a form, you should not use ‘link_to’ method which
will not submit a form actually. It will simply make a request. You
should use submit_tag. With submit_tag your code was not working
because you have to mention, which action should request go when
submit a form. You have not mentioned any action. So, it’s submitting
the form to the current uri which is default one. Thus, database is
not getting updated. try something like in the below reference
ok, so I tried this… and the redirect in the controller is now
working, but the database is not updated… which leads me to the
controller code, which must be wrong… here it is:
def update @user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
flash[:notice] = ‘User was successfully updated.’
format.html { redirect_to(:controller => “videos”) }
format.xml { head :ok }
else
flash[:notice] = ‘unable to update’
format.html { redirect_to(:controller => “videos”) }
format.xml { render :xml => @user.errors,
:status => :unprocessable_entity }
end
end
end
and I got the same result as before… I’m thinking The problem is
probably with the users_controller :update action… which i’ve posted
on this thread… I’ll continue to investigate