我使用mechanize代表我的用户填写预订表单。表单有一个验证码图像。使用mechanize我可以获得图像的链接,但是在我访问该链接时它会有所不同。因此,我放在用户面前的验证码图像(因此他可以填写并提交表格)不是原始表格所要求的,预订也不起作用。
这是我的控制器代码:
booking_page = agent.get('https://my_website.com')
images = booking_page.search("#Captcha img")
@captcha = agent.get(images.first.attributes["src"])
这在我看来:
<%= image_tag @captcha.uri %>
显示验证码,但这不是好的(页面已刷新)。我还尝试在this discussion之后执行此操作:
控制器:
@encoded_image = Base64.encode64 agent.get(images.first.attributes["src"]).body_io.string
查看:
<%= image_tag "data:image/jpeg;base64,#{@encoded_image}" %>
在这里,显示验证码图像但不是好图像。我设法进行预订的唯一方法是将图像保存在我的计算机上。
agent.get(images.first.attributes["src"]).save "captcha.jpg"
我该怎么做才能让我的用户使用它?我应该让他们下载图像(临时文件夹或等效文件)然后在应用程序中显示它吗?有没有办法将正确的图像保存到变量中,以便我可以在视图中使用它?
感谢您的帮助!