Ruby 如何在 GoodData 中找到对象的真实和实际使用

How to find real and actual using of an object in GoodData by Ruby

我尝试处理报告中 using/non-using 属性和事实的问题。 GoodData API documentation 表示使用 "using?" 方法。 这是我的代码:

project.attributes.each do |attr|
  project.reports.each do |report|
    puts report.title
    puts attr.title
    puts report.using?(attr)
  end
end

这个简单的测试告诉我,由于我在报告中使用了一次属性,然后立即删除,有关使用的信息将永远存在。

感谢您提供有关如何在报告中找到属性和事实的真实用法的任何建议,而不是历史记录。

迈克尔

有两个不同的概念需要澄清。它们是 'report' 和 'report definition'。

如果您转到灰色页面并查看您的任何报告,它们可能如下所示:

{
   "report" : {
      "content" : {
         "domains" : [],
         "definitions" : [
            "/gdc/md/m337ddyzwudoqgiq811pfuslld7phdz1/obj/1672",
            "/gdc/md/m337ddyzwudoqgiq811pfuslld7phdz1/obj/1674",
            "/gdc/md/m337ddyzwudoqgiq811pfuslld7phdz1/obj/11135",
            "/gdc/md/m337ddyzwudoqgiq811pfuslld7phdz1/obj/11146",
            "/gdc/md/m337ddyzwudoqgiq811pfuslld7phdz1/obj/11155",
            "/gdc/md/m337ddyzwudoqgiq811pfuslld7phdz1/obj/11156",
            "/gdc/md/m337ddyzwudoqgiq811pfuslld7phdz1/obj/11157",
            "/gdc/md/m337ddyzwudoqgiq811pfuslld7phdz1/obj/11211"
         ]
      },
      "meta" : {
         "author" : "/gdc/account/profile/18e93db4a57fba2d71f14fa6ea801d77",
         "uri" : "/gdc/md/m337ddyzwudoqgiq811pfuslld7phdz1/obj/1673",
         "tags" : "companya",
         "created" : "2014-01-25 10:14:33",
         "identifier" : "a9N6PNkSegqc",
         "deprecated" : "0",
         "summary" : "",
         "isProduction" : 1,
         "title" : "Yearly sales per office",
         "category" : "report",
         "updated" : "2016-02-23 12:40:18",
         "contributor" : "/gdc/account/profile/ca60c2f38c6804429f9c3934ea64ea09"
      }
   }
}

如您所见,您过去每次修改报告时都会保存此报告的多个版本。

如果你尝试,就像你做的那样:

puts report.using?(attribute)

如果属性是此报告的任何定义的一部分,您将获得 TRUE。为了专门检查此属性是否属于报告的 current/latest 定义的一部分,您应该使用:

puts report.definition.using?(attribute)

方法#definition 为您提供最新版本。希望对您有所帮助。

劳尔·梅尔戈萨