ruby - 有没有办法创建 HIT,但延迟其对 Mechanical Turkers 的可用性?

标签 ruby amazon-web-services mechanicalturk

基本上,我想要create a HIT ,但我不希望 Turkers 可以使用它,直到我可以从新 HIT 检索 HITId 并执行一些其他业务逻辑。

我没有从亚马逊文档中看到执行此操作的直接方法。一种看起来可行的解决方法是使用 UpdateHITReviewStatus当我不希望其可见时,将 HITReviewStatus 设置为 Reviewing;当我希望它可见时,将其设置为 Reviewable

不幸的是,我没有找到在创建 HIT 时设置自定义 HITReviewStatus 的方法;只有一种在 HIT 创建后设置和恢复此属性的方法(这可能为时已晚)。我想以某种方式创建一个 HIT(对于 Ruby 使用 RTurk):

RTurk::Hit.create(title: title) do |hit|
  hit.assignments = assignments
  hit.description = description
  # ... more settings...
  hit.review_status = 'Reviewing'
end

但这不起作用 - 我明白:

NoMethodError:
       undefined method `review_status=' for #<RTurk::CreateHIT:0x007fb7e5db28c0>

然而,即使这有效,它看起来确实像是一个不优雅的黑客。

是否有人成功创建了故意延迟 Turkers 的可用性或可审核性的 HIT?

编辑:措辞

最佳答案

免责声明:我从未使用过这个库,而且根本不知道它的用途,但我安装 gem 只是为了看看发生了什么,看来你可以做到这一点。

RTurk::Hit.create(title: title) do |hit|
  hit.assignments = assignments
  hit.description = description
  # ... more settings...
  hit.set_as_reviewing! # <------ NOTICE THIS LINE
end

我通过简单地完成这个基本步骤就发现了这一点:

RTurk::Hit.new(title: 'Title').methods.sort - Object.methods
# => [:assignments, :bonus_payments, :details, :disable!, :dispose!,   
#     :expire!, :extend!, :id, :id=, :map_content, :method_missing, 
#     :normalize_nested_params, :set_as_reviewable!, :set_as_reviewing!, 
#     :source, :source=, :url, :xml_to_hash]

此方法的源位置是 RTurk::Hit#set_as_reviewing!尽管它缺乏文档。

此外,如果这不起作用,可以尝试以下方法:

RTurk::Hit.create(title: title) do |hit|
  hit.assignments = assignments
  hit.description = description
  # ... more settings...
end.hit.set_as_reviewing!

虽然这个实现会遇到与你原来的问题相同的问题,但持续时间应该非常短,因为周期基本上是

 Create -- Web Call ------> Received
                                 |
 Response Object <-- Response ----
   |
 Update -- Web Call -------> Received

此外,还可以提供一个auto_approval_delay(不确定这会做什么,但它也可能有帮助)文档状态:

The number of seconds after an assignment for the HIT has been submitted, after which the assignment is considered Approved automatically unless the Requester explicitly rejects it.

关于ruby - 有没有办法创建 HIT,但延迟其对 Mechanical Turkers 的可用性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45424513/

相关文章:

ruby - 如何将整数和字符串数组转换为字符串,但在字符串周围保留单引号?

amazon-web-services - 使用 AWS Cloud Formation 模板通过 Java 示例应用程序创建包含新应用程序的 Elastic Beanstalk 环境

amazon-web-services - 适用于不同实例和相同端口的AWS负载均衡器

mysql - 无法连接到 Rails 4 中的 MySQL 数据库

ruby - 为所有新实例禁用 net::http 的 use_ssl

javascript - 在触发器上用 javascript 打开网页

amazon - 将 Amazon MTurk 项目从请求方沙箱转移到生产环境

html - 如何在 Mechanical Turk 中插入带有 html 代码的绘图框?

ruby - rhc 安装程序给出错误 `no such file dl/import`

amazon-web-services - 跨 AWS 账户在 2 个 SQS 队列中复制消息的最佳方式