在我的应用的Rails 4.1版本中,我的表单字段由Garlic.js保存到localStorage,如下所示:
garlic:www.mydomain.com/posts/new>form>input.post[title]: "d"
然而,当我将应用程序升级到Rails 4.2时,这些路径将更改为:
garlic:gsp-staging.premiacapital.com/posts/new>form>input.post[title]:eq(2) "d"
这会对我的测试造成严重破坏(我使用路径名测试localStorage)。知道为什么要追加这个eq(2)
吗?
答案 0 :(得分:0)
我找到了罪魁祸首。
基本上,在所有以前版本的Rails中,输入行没有兄弟姐妹:
[
<input class="span12 garlic-auto-save" id="js_post_title" name="post[title]" type="text">
]
在Rails 4.2中,表单中的输入似乎伴随着许多其他隐藏的输入字段:
[
<input name="utf8" type="hidden" value="✓" class="garlic-auto-save">,
<input type="hidden" name="authenticity_token" value="9I6MjfVtm76tXLI4pQjv9/yIhO8jpgg84SZcA/VZGaSkQ9vNqHoz54NYFpYeJLs9Im86hIF2qOBCPXE48YZhKw==" class="garlic-auto-save">,
<input class="span12 garlic-auto-save" id="js_post_title" type="text" name="post[title]">
]
这意味着触发了Garlic.js中的this method,因此将eq(2)
作为唯一标识符附加到路径名的末尾。
因此,我只需使用这个新的唯一标识符更新我的测试,它们都已通过。