2011-01-21 86 views
77

填写输入字段我有这样的:水豚:如何通过ID

<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填补这一领域呢?

回答

109

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

fill_in 'course_group_courses_attributes_2_name', :with => 'some text' 
+9

我认为是这样,但它不起作用。它似乎并没有填补它。它没有给出任何关于找不到的错误。它只是不填充它。 – Nerian 2011-01-21 13:00:14

+0

也许你可以包括有问题的水豚代码和任何其他相关的代码。 – raidfive 2011-01-21 17:40:21

26

您也可以做到这一点:

find('Id or class here').set('some text') 
3

如果您使用simple_form宝石,那么你一定要注意,它会自动执行确定您的表单元素,因此手动确定元素是徒劳的!

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

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需求。希望这可以帮助。

5

fill_in接受没有我首先发现混淆的#符号的id。另请注意,如果您的输入字段处于模式,则可能需要等待转场或淡入,然后才能填充字段。