rails_admin + devise 可快速建成用户功能及管理页面。
用rails g rails_admin:install
可选择创建User
模型,默认情况是所有注册的 User 都可以登录管理页面,所以再用 devise 创建 Admin:rails generate devise admin
,在config/initializer/rails_admin.rb
中设置config.current_user_method { current_admin }
。
这样一来用户权限区分开了,但 rails_admin 的secondary_navigation
貌似写死了:
- if _current_user
- if user_link = edit_user_link
%li= user_link
- if defined?(Devise) && (devise_scope = request.env["warden"].config[:default_scope] rescue false) && (logout_path = main_app.send("destroy_#{devise_scope}_session_path") rescue false)
%li= link_to content_tag('span', t('admin.misc.log_out'), :class => 'label label-important'), logout_path, :method => Devise.sign_out_via
- if _current_user.respond_to?(:email) && _current_user.email.present?
%li= image_tag "#{(request.ssl? ? 'https://secure' : 'http://www')}.gravatar.com/avatar/#{Digest::MD5.hexdigest _current_user.email}?s=30", :style => 'padding-top:5px'
https://github.com/sferik/rails_admin/blob/master/app/views/layouts/rails_admin/_secondary_navigation.html.haml 不是当前用户(而非当前管理员)无法显示链接,大家是怎么处理的?