Ответ 1
fill_in
принимает идентификатор как первый параметр:
fill_in 'course_group_courses_attributes_2_name', :with => 'some text'
У меня есть это:
<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>
Как заполнить это поле по его идентификатору?
fill_in
принимает идентификатор как первый параметр:
fill_in 'course_group_courses_attributes_2_name', :with => 'some text'
Вы также можете сделать это с помощью
find('Id or class here').set('some text')
fill_in
принимает id без символа #, который я сначала сбивал с толку. Также обратите внимание, что если ваше поле ввода находится в модальном режиме, вам может потребоваться дождаться перехода или исчезнуть до того, как поле будет заполнено.
Если вы используете simple_form gem, тогда вы должны заметить, что он автоматически идентифицирует ваши элементы формы, поэтому сами вручную элементы id бесполезны!
Есть; однако, соглашение об именах, которое simple_form следует за элементами формы id.
object_attribute
Итак, если вы заполняете информацию, чтобы сказать контактный объект следующим образом:
= simple_form_for @contact do |f|
= f.input :first_name
= f.input :last_name
simple_form автоматически генерирует идентификаторы для каждого элемента формы соответственно так:
id="contact_first_name"
id="contact_last_name"
Теперь вы можете просто использовать это соглашение об именах, чтобы выполнить все ваши потребности fill_in. Надеюсь, это поможет.