
Administración de Roles: AJAX
add_role
rm_role
Creación de Roles:
create_role: unidad, nombre, modelo, acción
Demo
Administración de Roles: AJAX
#app/views/admin/add_role.js.erb
$('tbody#users').append("<%= escape_javascript(
render partial: 'role', locals: {role: @role }) %>");
$('tr#<%= dom_id(@role) %>').effect('highlight');#app/controller/admin_controller.rb
def add_role
...
respond_to do |format|
format.js #render add_role.js.erb
end
end#app/views/admin/_form.html.erb
<%= form_for Role.new, :url => {:controller => "admin",
:action => "add_role", :format => :js, user: @user },
:method => :post, :remote => true do |f| %>
...
<%= f.submit %>
<%end%>#app/views/admin/new_role.html.erb
<% @models.each do |model| -%>
<p>
<%#= check_box_tag model.name %>
<strong><%= label_tag(model.name) %></strong>
<div class = model.name>
<% @actions.each do |action| %>
<%= check_box_tag "model_ids[#{model.id}][action_ids][]" , action.id %>
<%# action = model.id.to_s + " " + action.name %>
<%#= check_box_tag action, model.id %>
<%= label_tag(action.name) %>
<% end %>
</div>
</p>
<% end %>vista
#app/controller/admin_controller.rb
def create_role
@role = Role.new(name: params[:name], unit_id: params[:id])
if @role.save
params[:model_ids].each do |model|
model.last[:action_ids].each do |action|
Rma.create(role_id: @role.id ,model_id: model.first , action_id: action )
end
end
redirect_to show_role_path(@role), notice: "Rol Exitosamente Creado"
end
endControlador
https://github.com/sespinozj/model-rol-permissions