小编Dav*_*d_R的帖子

Ruby增量(+ =)为nil:NilClass引发错误未定义方法'+'

以下代码导致我的问题:

class Foo
  def initialize(n=0)
    @n = n
  end

  attr_accessor :n

  def inc
    n+=1
  end
end
Run Code Online (Sandbox Code Playgroud)

呼叫Foo.new.inc加注NoMethodError: undefined method '+' for nil:NilClass 呼叫Foo.new.n返回0

为什么会Foo.new.inc引发错误?我Foo.new.n+=1没有问题.

ruby

6
推荐指数
1
解决办法
1881
查看次数

Rails 4相当于Rails 3'Mode.all'

在Rails 3中,如果我想点击db,我会在查询结束时使用.all.这对于我在写入时刷新缓存(因此读取总是命中缓存)这一点非常有用.

现在在Rails 4中,Model.all返回一个ActiveRecord::Relation对象(即没有命中db).让它真正进入数据库并返回指定记录的最佳方法是什么?

ruby-on-rails ruby-on-rails-4

5
推荐指数
1
解决办法
3193
查看次数

如何在 ActiveRecord (ruby on Rails) 中按一系列值进行分组?

我有一个 ActiveRecord 模型,有两列我想要分组和求和(均为整数)。我似乎无法解决的问题是如何将第一列求和为第二列的一组,第二列按范围分组。

我知道我可以执行 Model.sum(:first_column, group: :second_column),但这会导致许多组,因为第二列值分散。如何对第二列的值进行分组,例如在 10 的范围内(0-9、10-19、20-29 等)?

sql activerecord ruby-on-rails

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

ActiveAdmin更新过滤器集合(reset_filters!)

我看到ActiveAdmin :: Filters :: ResourceExtension定义了reset_filters!,但我不知道该在何处调用。在活动管理员中创建新记录时,我希望重置过滤器。

示例:我有一个Post模型和Tag模型。帖子有很多标签。当我创建一个新标签并用该新标签标记一个帖子时,“帖子ActiveAdmin”页面上的过滤器不会更新-它仅列出以前存在的标签,并且在过滤器中不包含新标签。

我该怎么做呢?

ruby-on-rails activeadmin

0
推荐指数
1
解决办法
2304
查看次数