ruby Rails管理自定义控制器和窗体

biswetbf  于 2023-08-04  发布在  Ruby
关注(0)|答案(1)|浏览(94)

我正在使用rails_admin gem创建一个管理员 Jmeter 板,并试图创建一个自定义控制器来创建新的管理员,但只有一个输入:email的值。
我用的是devise gem。
问题是,当我尝试使用rails_admin_form_for时,我得到了这个错误:

ActionView::Template::Error (undefined method `admin_registration_path' for #<ActionView::Base:0x0000000000e470>

字符串
我的html.erb是:

<%= rails_admin_form_for @object, url: admin_registration_path(model_name: @abstract_model.to_param) do |f| %>
  <%= f.label :email %>
  <%= f.email_field :email %>

  <%= f.submit "Sign up" %>
<% end %>


我的控制器是:

require 'rails_admin/config/actions'
require 'rails_admin/config/actions/base'

module RailsAdmin
  module Config
    module Actions
      class NewAdmin < RailsAdmin::Config::Actions::Base
        RailsAdmin::Config::Actions.register(self)

        register_instance_option :collection do
          true
        end

        # register instance custom name
        register_instance_option :link_icon do
          'fas fa-user-plus'
        end

        register_instance_option :http_methods do
          %i[get post]
        end

        register_instance_option :controller do
          proc do
            if request.get?
              @object = @abstract_model.new
              @action = @action.with(@action.bindings.merge(object: @object))
              @authorization_adapter&.attributes_for(:new, @abstract_model)&.each do |name, value|
                @object.send("#{name}=", value)
              end
              object_params = params[@abstract_model.param_key]
              if object_params
                sanitize_params_for!(request.xhr? ? :modal : :create)
                @object.assign_attributes(@object.attributes.merge(object_params.to_h))
              end
              respond_to do |format|
                format.html { render @action.template_name }
              end
            elsif request.post?
              puts "Action: #{@action}"
            end
          end
        end
      end
    end
  end
end


我做错了什么,或者有更好的方法吗?
我关注了this code

**编辑:**以下是路由:

的数据

w8f9ii69

w8f9ii691#

您必须完全限定您的路由呼叫,如下所示:

Rails.application.routes.url_helpers.admin_registration_path

字符串

相关问题