Rails 2 から Rails 3 に移行中です。
_role_item.html.erb ビュー:
<% if @employee.has_role?(role.id) %>
<%= link_to image_tag('pman/checkbox_unchecked.jpg'), action: 'add_role', :employee_id => @employee.id, :role_id => role.id %>
<% end %>
チェックボックスをクリックすると、その従業員に役割が割り当てられ、役割リストと特権リストを含む部分ページにリダイレクトされます。
私のコントローラーには次のものがあります:
def add_role
@employee = Employee::OldEmployee.find(params[:employee_id])
@employee.add_role(params[:role_id])
redirect_to :action => 'employee_privileges', :employee_id => @employee.id
end
両方のパーシャルを持つビュー、_employee_privileges.html.erb:
<h3> <%= @employee.full_name %> (<%= @employee.initials %>) <%= @assign_roles %> - PRIVILEGES & ACCESS</h3>
<br>
<table><tr><td valign=top>
<%= render :partial => 'role_list' %>
</td><td width=50>
</td><td valign=top>
<%= render :partial => 'privilege_list' %>
</td></tr></table>
<br>
employee_privileges.js.erb:
$("#roles").html("<%= j(render partial: 'employee_privileges') %>");
コントローラー内の機能:
デフォルト
employee_privileges
@employee = Employee::OldEmployee.find(params[:employee_id])
@roles = Acl::Role.find :all
@modules = Acl::Module.find :all
@module_privileges = Array.new
@general_privileges = Acl::Privilege.find :all, :conditions => 'module_id IS NULL'
if !@general_privileges.empty?
@module_privileges << [nil, nil, nil, @general_privileges]
end
@modules.each do |m|
if !m.privileges.empty?
@module_privileges << [m.id, m.name, m.description, m.privileges]
end
end
@assign_roles = flash[:assign_roles]
#render :partial => 'employee_privileges'
end
現在、チェックボックスをクリックすると、次のエラーが表示されます。
Missing template acl/acl/employee_privileges, application/employee_privileges with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/home/alex/Intranet_update/app/views"
どんな助けでも大歓迎です。