Administración de Roles

Contenido
-
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
- Hacer que el controlador responda a Ajax
- Crear un Partial y form con remote true
- Crear el js
#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%>Creación de Roles:
#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
Demo
https://github.com/sespinozj/model-rol-permissions
Administración de Roles
By Sam W
Administración de Roles
- 788