[rails-settings在删除用户时不兼容rails_admin

问题描述 投票:0回答:1

问题已经在git here上创建,当我们删除用户时,我们在这里得到错误,是日志

Started GET "/admin/user/552/delete?_pjax=%5Bdata-pjax-container%5D" for 127.0.0.1 at 2019-12-05 11:41:14 +0500
Processing by RailsAdmin::MainController#delete as HTML
  Parameters: {"_pjax"=>"[data-pjax-container]", "model_name"=>"user", "id"=>"552"}
  Rendering /home/asnad/.rvm/gems/ruby-2.5.0/gems/rails_admin-1.4.2/app/views/rails_admin/main/delete.html.haml within layouts/rails_admin/pjax
  Rendered /home/asnad/.rvm/gems/ruby-2.5.0/gems/rails_admin-1.4.2/app/views/rails_admin/main/_delete_notice.html.haml (30.4ms)
  Rendered /home/asnad/.rvm/gems/ruby-2.5.0/gems/rails_admin-1.4.2/app/views/rails_admin/main/delete.html.haml within layouts/rails_admin/pjax (41.2ms)
Completed 500 Internal Server Error in 1231ms (ActiveRecord: 14.8ms)



NoMethodError - undefined method `constantize' for nil:NilClass:

Started GET "/admin/user/552/delete" for 127.0.0.1 at 2019-12-05 11:41:15 +0500
Processing by RailsAdmin::MainController#delete as HTML
  Parameters: {"model_name"=>"user", "id"=>"552"}
  Rendering /home/asnad/.rvm/gems/ruby-2.5.0/gems/rails_admin-1.4.2/app/views/rails_admin/main/delete.html.haml within layouts/rails_admin/application
  Rendered /home/asnad/.rvm/gems/ruby-2.5.0/gems/rails_admin-1.4.2/app/views/rails_admin/main/_delete_notice.html.haml (12.0ms)
  Rendered /home/asnad/.rvm/gems/ruby-2.5.0/gems/rails_admin-1.4.2/app/views/rails_admin/main/delete.html.haml within layouts/rails_admin/application (23.1ms)
Completed 500 Internal Server Error in 54ms (ActiveRecord: 2.5ms)



NoMethodError - undefined method `constantize' for nil:NilClass:

Started POST "/admin/__better_errors/3d8aba23abc57848/variables" for 127.0.0.1 at 2019-12-05 11:41:16 +0500

当我从用户模型中删除以下几行时,它工作正常。

has_settings do |s|
  s.key :production_overview_report_mailer, defaults: { enabled: false }
end

[有人可以帮我使用带有ledermann-rails-settings(2.4.3)和rails_admin(1.4.2)的Rails 5.1.6。

rubygems ruby-on-rails-5 rails-admin
1个回答
0
投票

我通过放置以下内容来覆盖app/views/rails_admin/main/_delete_notice.html.erb来解决它。

<% object = delete_notice %>
<li style="display:block; margin-top:10px">
  <span class="label label-default">
    <%= @abstract_model.pretty_name %>
  </span>
  <% wording = object.send(@model_config.object_label_method) %>
  <% if show_action = action(:show, @abstract_model, object) %>
    <%= link_to(wording, url_for(action: show_action.action_name, model_name: @abstract_model.to_param, id: object.id), class: 'pjax') %>
  <% else %>
    <%= wording %>
  <% end %>
  <ul>
    <% @abstract_model.each_associated_children(object) do |association, children| %>
      <% humanized_association = @abstract_model.model.human_attribute_name association.name %>
      <% limit = children.count > 12 ? 10 : children.count %>
      <% children.first(limit).each do |child| %>
        <%= content_tag :li, class: dom_class(child) do %>
          <% if child.class.name != "RailsSettings::SettingObject" %>
            <% child_config = RailsAdmin.config(child) %>
            <%= humanized_association.singularize %>
            <% wording = child.send(child_config.object_label_method) %>
            <% if child.id && (show_action = action(:show, child_config.abstract_model, child)) %>
              <%= link_to(wording, url_for(action: show_action.action_name, model_name: child_config.abstract_model.to_param, id: child.id), class: 'pjax') %>
            <% else %>
              <%= wording %>
            <% end %>
          <% end %>
        <% end %>
      <% end %>
      <% if children.count > limit %>
        <li>
          <%= t('admin.misc.more', count: children.count - limit, models_name: humanized_association) %>
        </li>
      <% end %>
    <% end %>
  </ul>
</li>
© www.soinside.com 2019 - 2024. All rights reserved.