所以我正在尝试使用我的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&hitId=2FC98JHSTLB3ZZBONH9OEJEJ4E6FRO&workerId=A1GHEKG3TRCQ5Y&turkSubmitTo=https%3A%2F%2Fworkersandbox.mturk.com" name="ExternalQuestionIFrame"></iframe>
谢谢!
答案 0 :(得分:0)
我能够在Rails 4.2上确认与turkee gem相同的问题
解决方案是@AlexTheGoodman在上面的评论中指出的。
修改〜/ config / application.rb并添加以下内容:
class Application < Rails::Application
config.action_dispatch.default_headers.clear
end