首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过操作获取所有记录并显示在视图中。

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

Stack Overflow用户
提问于 2016-11-18 16:15:54
回答 2查看 59关注 0票数 1

当我设置一个简单的显示所有事物视图的时候,我对开路先锋有困难。

操作

代码语言:javascript
复制
class Thing < ApplicationRecord
  class ShowAll < Trailblazer::Operation
    include Model
    model Thing, :all   #why :all is not working here?

    def process
    end
  end
end

控制器

代码语言:javascript
复制
class PageController < ApplicationController
  def index
    run Word::ShowAll
  end
end

为什么:all不能从db中获取所有的东西,但是:find会通过它的id来获得一个呢?

EN

回答 2

Stack Overflow用户

发布于 2016-11-19 00:35:53

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

我不知道你在哪里找到这个例子,因为它不应该起作用AFAIK :查找是一条捷径,我相信,我从来没有真正使用过它。

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

尽管如此,尝试在没有分页的情况下获取所有记录是一个非常糟糕的想法,除非您100%确信您的表不会超过几十个记录。除非你知道你没有很大的负担。因此,定义这种捷径是危险的。

票数 1
EN

Stack Overflow用户

发布于 2016-11-19 14:25:31

在那里调用Trailblazer::Model#model只是重写TrailBlazer::Operaration#model!方法的一个快捷方式。所以你似乎想做的是:

代码语言:javascript
复制
class Thing < ApplicationRecord
  class ShowAll < Trailblazer::Operation
    def model!(params)
      Thing.all # add any filtering or pagination here
    end
  end
end

在控制器中调用present而不是run,这样它就可以建立模型,而不调用操作的process方法。

代码语言:javascript
复制
class PageController < ApplicationController
  def index
    present Word::ShowAll
  end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40681634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档