Witam mam następujący problem mam listę użytkowników którym administrator może przypisać rolę administratora za pomocą link_to:
<h1>Users</h1>
<% @users.each do |user| %>
<%= link_to user.email, user %>
<% if current_user.admin? %> |
<% if user.admin? %>
<%= link_to "remove admin role", remove_admin_url(:id => user.id, :format => :js), :remote => true, :id => "remove_admin_link[#{user.id}]" %>
<% else %>
<%= link_to "add admin role", add_admin_url(:id => user.id, :format => :js), :remote => true, :id => "add_admin_link[#{user.id}]" %>
<% end %>
<br />
<% end %>
<br />
<% end %>
W kontrolerze users_controller stworzyłem odpowiednio dwie akcje remove_admin oraz add_admin:
[code] def add_admin
@user = User.find(params[:id])
@user.update_attribute :admin, true
respond_to do |format|
format.js { @user }
end
end
def remove_admin
@user = User.find(params[:id])
@user.update_attribute :admin, false
respond_to do |format|
format.js { @user }
end
end[/code]
Oraz stworzyłem dwa szablony js add_admin.js.erb oraz remove_admin.js.erb i w nich chciałbym podmienić link “add admin role” po jego kliknięciu na link “remove admin role”, nie wiem za bardzo jak to zrobić, ponieważ samo nawet schowanie tego linku za pomocą funkcji hide nie działa, sprawdziłem np że div’a postaci
add_admin.js.erb
$('#add_admin_link[<%= @user.id %>]').hide();
remove_admin.js.erb
$('#remove_admin_link[<%= @user.id %>]').hide();
Niestety ten sposób nie działa, w zasadzie nie pojawia się żaden błąd ale nie mogę znaleźć przyczyny. Tak jak psiałem prosty div się ukryje i działa.
Routing:
match 'user/add_admin/:id' => 'users#add_admin', :as => :add_admin
match 'user/remove_admin/:id' => 'users#remove_admin', :as => :remove_admin