我正在使用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
**编辑:**以下是路由:
的数据
1条答案
按热度按时间w8f9ii691#
您必须完全限定您的路由呼叫,如下所示:
字符串