小编Dmi*_*sky的帖子

RailsAdmin - 通过包括阻止N + 1查询

有谁知道配置的方法?还是另一种DB查询优化技术?

我使用Rails 4.1.8与RailsAdmin 0.6.8和Mongoid 4.0.2

rails-admin ruby-on-rails-4

7
推荐指数
0
解决办法
275
查看次数

Rails ActiveJob - 如何阻止作业在 before_enqueue 中排队

我正在运行 Rails 4.2.8,我想让我的工作只在某些条件下运行。目前我正在检查调用作业的代码,但在作业类中包含逻辑会更清晰。有没有人这样做过?

class MyJob < ApplicationJob
  before_enqueue do |job|
    # check and stop job from being enqueued under certain conditions
  end
  def perform(args*)
    # code here
  end
end
Run Code Online (Sandbox Code Playgroud)

我使用 Sidekiq 4.2.10 作为后台作业适配器。

ruby-on-rails redis sidekiq rails-activejob

6
推荐指数
2
解决办法
3109
查看次数

Mongoid 5.0 支持 $lookup

有谁知道最新的 5.0 版本的 Mongoid gem 是否支持$lookup

没有提到mongoid 文档

mongodb mongoid

4
推荐指数
1
解决办法
1408
查看次数

使用CanCanCan或Pundit的字段级权限

我目前正在使用带有CanCanCan 1.13.1的Rails 4.1.14,并在模型/记录级别上定义了细化权限.管理员可以管理所有文章,但用户只能编辑他们撰写的文章.

为了防止普通用户编辑特定字段,我根据角色在rails_admin中显示字段.

visible do 
  bindings[:object].id == bindings[:view].current_user.roles.include? :admin
end
Run Code Online (Sandbox Code Playgroud)

我也使用https://github.com/aasm/aasm gem并创建自定义操作,以便用户可以将记录移动到新状态.

但我真正想要的是根据用户的角色/记录启用字段级权限.我在CanCanCan或https://github.com/elabs/pundit页面上找不到任何文档.

有人有经验吗?

devise rails-admin ruby-on-rails-4 pundit cancancan

4
推荐指数
1
解决办法
938
查看次数

重写 Rails 单表继承模型中的验证

假设我有两个使用 Rails 单表继承的模型。我可以轻松地在子模型中添加验证以使某些字段成为必需的。但是,如果我想要更改验证,使子模型中的字段可选或具有不同的标准(例如数字),该怎么办?

class Parent
  include Mongoid::Document
  field :name, type: String
  field :age, type: Integer
  validates :name, presence: true
  validates :age,   numericality: { greater_than_or_equal_to: 25 }
end
class Child < Parent
  # how can I make name optional in Child?  
  validates :age,   numericality: { less_than: 25 }
end
Run Code Online (Sandbox Code Playgroud)

我可以通过创建自定义验证方法,然后在子类中覆盖它们来完成,但我希望有一种方法可以仅使用默认的 Rails 验证器格式来做到这一点。

validation activemodel ruby-on-rails-4

3
推荐指数
1
解决办法
1492
查看次数