Tag: 范围

同一资源的两个页面–ActiveAdmin

目前我有User模型,它在user.rb注册为ActiveAdmin的新资源。 生成的页面显示具有范围的所有用户( all / journalists / startup_employees )。 现在我想为同一资源和相同的范围创建另一个页面,但是应该只有waiting字段设置为true记录(并且前一页应该仅显示以下内容:waiting => false )。 我怎么能这样做? 我知道我可以用filter做到这一点,但我需要两个单独的页面,菜单中有两个链接。 //解决方案 它比建议更容易(谢谢你们!): ActiveAdmin.register User, :as => ‘Waitlist User’ do menu :label => “Waitlist” controller do def scoped_collection User.where(:waitlist => true) end end # code scope :all scope :journalists scope :startup_employees end ActiveAdmin.register User do controller do def scoped_collection User.where(:waitlist => false) […]

具有多个条件的范围基于多个条件的条件

是否有可能使用类似的东西 scope :state, ->(state) { merge(where(“start_time = ?”, Time.now.utc.beginning_of_day, Time.now.utc.beginning_of_day)) if state.include?(“open”) merge(where(“end_time ?”, Time.now.utc.beginning_of_day)) if state.include?(“upcoming”) } 如果我使用此范围,则只有最后一个范围可用。 例如: 州([“即将来临”]) – >工作 state([“open”]) – >不使用的地方 state([“deleted”],[“coming”]) – >仅限使用即将发生的条件的地方

跨类的ruby变量范围

RuNubie在这里。 我有一个使用net/IMAP库登录gmail的类Login 。 发生的事情是我创建了该类的新实例,例如: a = Login.new(“username”, “gmail.com”, “passw”) 然后,我正在研究其他类,这些类会对邮箱做一些“东西”。 问题是我在Login中定义的@imap变量似乎已经消失了(由于我假设的范围)。 这就是在Login类中声明@imap方式: @imap = Net::IMAP.new(‘imap.gmail.com’,993,true,nil,false) 所以这: @today = Date.today @received_today = imap.search([“SINCE”, @today.strftime(“%d-%b-%Y”)]).count.to_s …返回错误。 这是我在玩这个时遇到的两个错误。 第一个是当我使用imap ,第二个是当我尝试使用@imap : NameError: undefined local variable or method `imap’ for # NoMethodError: undefined method `search’ for nil:NilClass 处理这种情况的最佳做法是什么? 是唯一的解决方案来定义我的方法,在我创建Net :: IMAP的新实例的同一个类中做“填充”? 将@imap声明为全局变量$imap是一种不好的做法吗? 如此困惑,我打赌答案很简单也很明显,但我只是没有看到它。 谢谢!

模块如何解决常数的范围?

我一直在阅读这本Ruby书,然后就是这个我不太了解的例子: CONST = “outer” module Mod CONST = 1 def Mod.method1 # module method CONST + 1 end end module Mod::Inner def (Mod::Inner).method2 CONST + ” scope” end end Mod::CONST # => 1 Mod.method1 # => 2 Mod::Inner::method2 # => “outer scope” 您能否向我解释一下(详细说明),以便我完全理解该范围如何在Ruby中运行。 谢谢。

Rails 4 – Pundit – 如何编写范围

我试图学习如何使用Pundit和Rails 4.我在过去的两年里一直试图学习这一点,并且正在慢慢地取得一些进展。 我也在努力学习如何编写范围。 我还在试图弄清楚如何将建议翻译成简单的英语,以便我可以开始理解。 我陷入了范围专家政策使用和我可以在模型中编写的一般范围类的交叉点。 我有Uer,Profile和Project的模型。 协会是: 用户 has_one :profile 轮廓 belongs_to :user has_many :projects 项目 belongs_to :profile 我正在尝试编写一个权威策略,允许不同的用户查看不同的项目。 我正在写一个范围的政策,专家来管理这个。 在我的项目模型中,我正在尝试编写查找所有用户项目的范围。 用简单的英语,我想搜索所有项目,以查找那些属于用户ID等于当前用户的配置文件ID的项目。 在我的专家政策中,我正在尝试编写此解决方法: class Scope attr_reader :user, :scope def initialize(user, scope) @user = user @scope = scope end def resolve if user.has_role?(:admin) scope.all elsif user.id == @project.profile.user_id scope.projects_for_user elsif user.present? scope.in_state(:publish) else Project.none end end […]

如何在两个范围内找到常见日期

我有2个日期范围, start_date1..end_date1和start_date2..end_date2 ,是否有一种简单的“ruby”方式来查找两个范围内的所有日期?

ruby中的模块和类变量范围

我仍然试图清楚地理解模块/类/实例变量…… 我的代码目前看起来像这样…… module Foo @@var1 ={} @@var2 =[] @@var3 = nil def m1(value) @@var2 << value end def m2(value) @@var1[@@var3]=value end end class Bar include Foo p @@var1 end class Bar2 include Foo p @var1 end 我正在尝试创建一个模块,其中包含每个类的行为方式的类范围配置。 配置存储在@@ var1和@@ var2中。 使用此代码,变量在包含该模块的所有类之间共享。 这不是期望的结果,我希望每个类都拥有自己的行为配置。 我还尝试创建一个包含模块的单个类,并创建变量,但模块无法访问变量。 module Foo def m1(value) @@var2 << value end def m2(value) @@var1[@@var3]=value end […]

Rails 5 – 使用编辑操作中的范围来查找特定实例的相关子项

我正在尝试学习如何在我的Rails 5应用程序中使用范围。 我在这里问了一个背景问题。 在我的Rails 5应用程序中有用户,提案和潜力的模型。 用户创建提案,然后他们自己和其他人可以创建评论。 模型之间的关联是: 用户 has_many :proposals, dependent: :destroy has_many :potentials 提案 belongs_to :user has_many :potentials, inverse_of: :proposal accepts_nested_attributes_for :potentials, reject_if: :all_blank, allow_destroy: true 潜在 belongs_to :proposal, inverse_of: :potentials belongs_to :user 在我的路线文件中,我有两个潜在的资源。 我不确定我是否已经离开了滑雪道 – 我无法找到一个如何做到这一点的例子。 我有两个: resources :potentials 以及: resources :proposals do resources :potentials 目的: 当提出提案的用户尝试编辑它时,我只希望该用户能够编辑他们自己创建的潜力。 我为潜力设置了两条路线的原因是嵌套资源在提案表单中有一个嵌套的表单字段,因此提案创建者可以通过这种方式获得潜力。 任何其他看到提案并具有潜力的用户都可以通过单独的表单来完成。 任何用户(包括提案创建者,都可以通过单独的表单编辑潜力),提案创建者也可以通过提案表单中的嵌套表单编辑自己的任何提案。 目前,每当我编辑提案表单时(即使我不编辑潜在的嵌套字段),所有潜力都会更新,以插入提案创建者的用户ID,覆盖实际的潜在创建者的用户ID。 解 我正在尝试限制投标控制器中的编辑操作,以便它只允许在具有user_id […]

有没有一种简单的方法可以在Ruby中生成有序的夫妻

我想知道是否有类似于Range的东西但不是整数但是有序的夫妻(x,y) 。 我想知道是否有一种简单的方法可以做这样的事情: ((1,2)..(5,6)).each {|tmp| puts tmp} #=> (1,2) (3,4) (5,6) 编辑 :也许我不是100%明确在我的问题:)我会尝试以不同的方式问它。 如果我有这些夫妇: (3,4)和(5,6)我正在寻找一种方法来帮助我产生: (3,4), (4,5), (5,6) 如果我不得不更好地开除它:如果夫妻是(x,y) – > (x0,y0), ((x0+1),(y0+1)), ((x0+2), (y0+2)) and so on .

在单独的文件中定义时,将Ruby类添加到模块

我想通过将它们放在一个模块中来命名我的Ruby类。 实际上,如果我决定发布我的Ruby gem以使类名不与另一个gem中的现有类冲突,这是一个好主意。 我知道我可以为A::B类做以下事情: module A class B end end 但是,上面的内容非常麻烦,因为我需要将所有类定义放在一个Ruby源文件中,以便将它们放在模块下。 我宁愿将我的类定义保存在单独的源文件中,就像Java项目一样,那么当它们在单独的文件中定义时,如何将类添加到模块中呢?