ruby-on-rails - 在 rails_admin 中获取登录用户关联记录

标签 ruby-on-rails ruby rails-admin cancancan

我已经安装了 rails_admin gem,没有任何错误,它的显示模型也很糟糕,但是我有一个要求,我需要显示 current_user 登录的相关数据

e.g User has many Books so in rails admin i want only that user book but currently it's showing all users books which is default behaviour of rails_admin

我也尝试使用 cancancan gem 来实现同样的事情,但它不起作用我的 rails_admin 初始化配置如下

rails_admin.rb
RailsAdmin.config do |config|
  ### Popular gems integration
  ## == Devise ==
   config.authenticate_with do
    warden.authenticate! scope: :user
   end
   config.current_user_method(&:current_user)
   config.parent_controller = 'ApplicationController'
  ## == Cancan ==
  config.authorize_with :cancan,UserAbility
  ## == Pundit ==
  # config.authorize_with :pundit
  config.included_models = ["Book","User"]
  config.actions do
    dashboard                     # mandatory
    index                         # mandatory
    new
    export
    bulk_delete
    show
    edit
    delete
    show_in_app
  end
end

UserAbility类实现如下

  class UserAbility
  include CanCan::Ability

  def initialize(user)
    # Define abilities for the passed in user here. For example:
       if user.present?
         can :access, :dashboard
         can :manage, :Book,id:user.id
       end
  end
end

最佳答案

代替 can :manage, :Book,id:user.id,尝试使用:

can :read, Book, user_id: user.id

所以这些能力看起来像:

can :access, :rails_admin
can :dashboard
can :read, Book, user_id: user.id

关于ruby-on-rails - 在 rails_admin 中获取登录用户关联记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43030045/

相关文章:

ruby - ruby 字符串的范围是什么?

ruby-on-rails - rails_admin 从事开发工作但不从事生产或 heroku

ruby-on-rails - 是否可以将 tinyMCE 与 rails_admin 一起使用?

ruby-on-rails - Netbeans Ruby on rails 自动完成功能无法按预期工作

SQL - 如何从两个表中获取数据

ruby-on-rails - Heroku vs EngineYard:哪个更值得?

ruby - 打包编译好的二进制文件/带 Ruby Gem

ruby-on-rails - Controller 所有 Action 的相同实例变量

ruby-on-rails-3 - 由于 'redirect_to root_url' 未通过操作导致的 RoutingError

ruby-on-rails - 如何在 Devise 中验证用户的密码