ExternalQuestion表单未显示在Amazon Mechanical Turk上

时间:2013-12-23 16:14:16

标签: ruby-on-rails ruby http heroku mechanicalturk

所以我正在尝试使用我的rails应用程序和gem'rturk'将HIT发布到mturk。整个过程顺利进行,除非我打开HIT的亚马逊网址,我的rails应用程序的表单不会显示在iframe中。它只是一个空白的白色iframe。当我检查该页面的来源时,我可以清楚地看到其中包含assignmentId,hitId和workerId的正确链接。所以它没有理由不显示,对吧?以下是在mturk上显示的表单的一部分:

<%= form_for @results, :url => 'https://workersandbox.mturk.com/mturk/externalSubmit', html: {class: "takeTest takeScale"} do |f| %>

<%= hidden_field_tag 'assignmentId', @assignment_id %>
<%= hidden_field_tag 'hitId', @hit_id %>
<%= hidden_field_tag 'workerId', @worker_id %>

<%= f.submit("Submit Answers", class: 'btn btn-info') %>

这是我的控制器的一部分,使用rturk创建该表单作为HIT:

#post to amazon mturk
    RTurk.setup('MYKEY', 'MYOTHERKEY', :sandbox => true)
    @hit = RTurk::Hit.create(:title => "#{@scale.title}") do |hit|
      hit.max_assignments = 5
      hit.description = 'post'
      hit.question("https://my-rails-app.herokuapp.com/tests/scale/take/#{@scale.id}",
                   :frame_height => 500)  # pixels for iframe
      hit.reward = 0.05
      hit.qualifications.add :approval_rate, { :gt => 80 }
    end
    redirect_to root_url, :notice => "posted at: #{@hit.url}  !!!"

我想知道它是否与我的表单有关或者是否与heroku上的托管有关?任何帮助将非常感激。顺便说一句,这是亚马逊上iframe的来源,以表明它应该全部工作:

<iframe height="500" scrolling="auto" frameborder="0" align="center" src="https://my-rails-app.herokuapp.com/tests/scale/take/7?assignmentId=2IBHSTLB3L0FPI5VSJAEMREVGFBIU0&amp;hitId=2FC98JHSTLB3ZZBONH9OEJEJ4E6FRO&amp;workerId=A1GHEKG3TRCQ5Y&amp;turkSubmitTo=https%3A%2F%2Fworkersandbox.mturk.com" name="ExternalQuestionIFrame"></iframe>

谢谢!

1 个答案:

答案 0 :(得分:0)

我能够在Rails 4.2上确认与turkee gem相同的问题

解决方案是@AlexTheGoodman在上面的评论中指出的。

修改〜/ config / application.rb并添加以下内容:

class Application < Rails::Application
  config.action_dispatch.default_headers.clear
end