我在我的应用程序中有一个特性测试,在那里我测试上传一个文件。所以我有这样的东西:
attach_file :input_id, Rails.root + "spec/fixtures/sample.jpg"
click_button "Upload"我的“期望”总是失败,我在控制器中添加了一个binding.pry来检查原因。结果,传递给输入文件的内容是一个字符串。
有没有人遇到过同样的问题?对于如何解决这个问题,有什么建议吗?被困在这个问题上已经有两天了。
编辑
忘了提到,输入文件是一个多类型的
f.attachment_field :input_field, multiple: true发布于 2016-01-19 18:19:01
我在评论中问了一个问题,#attachment_field是从重新文件开始,还是使用直接或预签名模式。如果您的回答是“是”,则可以节省时间:
使用直接或预签名模式时,重新文件不会使用表单上载文件,而是使用ajax将文件提交到自己的sinatra应用程序、S3等(取决于所使用的后端),然后在添加到表单的隐藏字段中提交文件上载的id。在这种情况下,您会期望它是一个字符串。您可以阅读更多关于它的https://github.com/refile/refile#4-rails-helpers和https://github.com/refile/refile#5-javascript-library。
发布于 2016-01-19 06:15:19
试试这个:
attach_file('Image', "spec/files/images/yourtestimg.jpg")显然,在路径中创建那些文件夹。对不起,我宁愿解释太多也不愿解释。yourtestimg.jpg指的是我放在那个文件夹中的一个实际图像。
简单地说一下,以上是正确的方法,但有一次我遇到了一个失败,因为它没有识别‘图像’。在这种情况下,右键单击并检查upload按钮的元素,并查看字段的名称。在“失败”中,我指的字段是名称'post_image',同样,标题字段名为‘post_ the’。有一次,我把图像换成了“post_image”,它通过得很好。
贾斯汀
https://stackoverflow.com/questions/34869469
复制相似问题