91

我有这个:

<input class="string optional" 
    id="course_group_courses_attributes_2_name" 
    name="course_group[courses_attributes][2][name]" 
    placeholder="Lengua" 
    size="15" 
    type="text" />
</div> 

如何通过 ID 填写该字段?

4

4 回答 4

132

fill_in接受 id 作为第一个参数:

fill_in 'course_group_courses_attributes_2_name', :with => 'some text'
于 2011-01-21T04:15:43.570 回答
33

你也可以这样做:

find('Id or class here').set('some text')
于 2014-06-30T07:33:48.623 回答
7

fill_in接受没有 # 符号的 id ,我一开始觉得很困惑。另请注意,如果您的输入字段处于模式中,您可能需要等待过渡或淡入才能填写该字段。

于 2015-11-18T18:47:42.873 回答
4

如果您使用的是simple_form gem,那么您必须注意它会自动识别您的表单元素,因此您自己手动识别元素是徒劳的!

有; 然而,simple_form 遵循的命名约定来标识表单元素。

object_attribute

因此,如果您要为联系对象填写信息,如下所示:

= simple_form_for @contact do |f|
  = f.input :first_name
  = f.input :last_name

simple_form 将自动为每个表单元素分别生成 id,如下所示:

id="contact_first_name"
id="contact_last_name"

现在您可以简单地使用这个命名约定来满足您所有的 fill_in 需求。希望这可以帮助。

于 2015-08-18T16:40:11.360 回答