小编hun*_*ter的帖子

为什么在 Grape API 中使用助手而不是包含模块?

当使用 Grape 编写 API 时,为什么要费心使用helpers宏,而不是仅仅包含一个模块或添加一个方法?

例如,您可以在模块中定义方法并将它们作为帮助程序包含在 Grape 中,如下所示:

module HelperMethods
  def useful_method(param)
    "Does a thing with #{param}"
  end
end

class HelpersAPI < Grape::API
  helpers HelperMethods

  get 'do_stuff/:id' do
    useful_method(params[:id])
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,为什么不这样做呢?

class IncludeAPI < Grape::API
  include HelperMethods

  get 'do_stuff/:id' do
    useful_method(params[:id])
  end
end
Run Code Online (Sandbox Code Playgroud)

我想您HelperMethods为了提供辅助方法而包含该模块更为明确,但这似乎是添加替代语法的一个微不足道的理由。

helpers与只是普通的相比,您想要使用的好处/原因是include什么?

ruby grape-api

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

选择静态值以合并到另一个查询中

从本质上讲,我的问题是我需要在Oracle中运行一个查询静态值列表('静态'意味着它是从我无法从数据库中获取的其他地方获得的,但实际上是我插入的任意值列表查询)具有从查询返回的动态值列表.

所以,我的初始查询看起来像:

select * from (select ('18776') as instanceid from dual) union (<more complex query>)
Run Code Online (Sandbox Code Playgroud)

我想,万岁!然后尝试使用更长的静态值列表.事实证明,如果我尝试运行,我会得到'Missing Right Parenthesis':

select ('18776','18775') as instanceid from dual
Run Code Online (Sandbox Code Playgroud)

所以,我的基本问题是如何将静态值列表集成到此联合中?

注意:这是问题的简化示例.在生成查询之前,实际列表是从API生成的,因此这个"静态"值列表是不可预测且任意大的.我不是只处理2个静态值,它是一个任意列表.

sql oracle oracle11g

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

标签 统计

grape-api ×1

oracle ×1

oracle11g ×1

ruby ×1

sql ×1