Здесь show.html
отображает выпадающий список, в котором содержатся роли.
Когда мы выбираем роль, мы должны иметь возможность получить разрешение на той же странице
Для этого я использовал частичное, но получаю ошибку, как показано на рисунке,
Без использования частичного, когда я пытался отобразить в отдельном файле display.html.erb
, я получаю правильный результат.
но я хочу получить результат в том же show.html.erb
файле.
Пожалуйста, дайте несколько советов для достижения правильных результатов
permission_controller
def display
param = params[:role]
id=param[:id]
@roles = Role.includes(:permissions).all
@uniq_controller = Role.joins(:permissions).where('roles.id=?',id).select('permissions.*').group_by { |p| p.description }
redirect_to permissions_show_path
end
def show
@permission = Permission.new
end
show.html.erb
<%= form_tag(:controller => "permissions", :action => "display") do %>
<%= collection_select(:role, :id, Role.all, :id, :name) %>
<button type="submit">search</button>
<% end %>
<th width="25px"> <%= "Controller" %></th>
<th width="25px"> <%= "Permissions" %></th>
<% @uniq_controller.each do |permission| %>
<%= render partial:"display", locals:{permission:permission} %>
<% end %>
_display.html.erb
<thead>
<th width="25px"> <%= permission.first.gsub("_"," ") %></th>
<% permission.second.each do |cont| %>
<tr>
<th width="25px"><%= check_box_tag :permission_ids, {multiple: true},
cont.id %><%= cont.name %></th>
</tr>
<% end %>
</thead>