'create'中的函数定义值

时间:2017-05-16 19:22:32

标签: ruby-on-rails ruby

当用户按下“获取报告”按钮时,我有一个报告对象可以从其他API获取数据。

如何设计newcreate以从其他函数获取参数?这就是我的控制器的样子:

def new
  @run = Run.new
end

def create
  param_holder = get_payload
  @run = Run.new(param_holder)
end

def get_payload
  statushash = Hash.new

  # placeholder data for testing below 
  statushash[:daterun] = Time.now.strftime("%m/%d/%Y")
  statushash[:status] = "OK"
  statushash[:count] = 13

  return statushash
end

有没有人有学习资源的建议,并提出这样的基本问题?

1 个答案:

答案 0 :(得分:0)

我发现最好将所有API调用逻辑抽象到我自己的对象,我将其称为服务对象。此对象具有返回JSON的基线API调用的方法。然后,您可以将这些哈希值(JSON)传递给您的RUN模型或您用来填充报表数据的任何模型,并使用方法从中提取所需内容,或者如果它具有全部哈希值,则只传递整个哈希值必需的属性。

我这样做的方法是让你的"获取报告"按钮在此提供的控制器中点击创建操作的帖子。

我不会使用" new"在这种情况下的操作,因为它通常保留给某种用户输入视图。