0

Я делаю переход от Rails 2 к Rails зрения 3.redirect_to вызывает шаблон отсутствует ошибка

_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 [email protected]_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" 

Любая помощь будет оценена.

ответ

0

Просьба указать относительный путь в части, которую вы хотите визуализировать.

$("#roles").html("<%= j(render partial: 'employee_privileges') %>"); 

вариант, как делают частичный:

+0

@MalusAlexandru «/ путь_к_каталогу/employe_privileges» у вас при условии, что относительный путь для файла, который вы хотите получить доступ –

+0

сделать это не _employee_privileges.html.erb _employee.privileges –

+0

Я пробовал с базовым путем как /acl/acl/_employee.privileges.html.erb и просто _employee.privileges.html.erb. Это та же ошибка, и я думаю, что рельсы автоматически распознают путь по умолчанию «Поиск в:»/home/alex/Project/app/views »« потому что у контроллера есть папка acl, а затем имя acl_controller.rb –

Смежные вопросы