通过操作获取所有记录并在视图中显示

时间:2016-11-18 16:15:55

标签: ruby-on-rails-5 trailblazer

在设置简单的所有事物视图时,我遇到了开拓者的问题。

操作

class PageController < ApplicationController
  def index
    run Word::ShowAll
  end
end

控制器

:all

为什么:find无法从数据库获取所有内容但var arr1=[1,2,3]; var arr2=[4,5,6]; var arr3=[]; arr3.push(arr1,arr2); console.log(arr3);通过其ID获取一个?

2 个答案:

答案 0 :(得分:1)

询问TRB问题的最佳地点实际上是在Github频道上。

我不确定你在哪里找到这个例子,因为它不应该工作AFAIK,:find是一个我相信的捷径,我从来没有真正使用它。

您应该在流程方法中定义所有逻辑。 http://trailblazer.to/gems/operation/1.1/api.html#process

话虽如此,试图在没有某种分页的情况下获取所有记录是一个非常糟糕的主意,除非你100%确定你的表不会超过几十个记录。除非你知道你没有大负荷。所以定义那种捷径是危险的。

答案 1 :(得分:1)

当你正在做Trailblazer::Model#model时,只需要一个覆盖TrailBlazer::Operaration#model!方法的快捷方式。所以你似乎想要做的是:

class Thing < ApplicationRecord
  class ShowAll < Trailblazer::Operation
    def model!(params)
      Thing.all # add any filtering or pagination here
    end
  end
end

在您的控制器中调用present而不是run,以便设置模型,但不会调用操作的process方法。

class PageController < ApplicationController
  def index
    present Word::ShowAll
  end
end