Какое правильное имя элемента для fill_in поля коллекции в капибаре?

Вот исходный код html для поля mfg_process_id в форме цитаты. В это поле подается набор процессов.

<div class="input select required quote_mfg_process_id">
<label class="select required control-label" for="quote_mfg_process_id">
<abbr title="required">*</abbr>
<span class="translation_missing" title="translation missing: en.Mfg Process">Mfg Process</span>
</label>
<select id="quote_mfg_process_id" class="select required" name="quote[mfg_process_id]">
<option value=""></option>
<option value="1">Process 1</option>
<option value="2">Process 2</option>
</select>
</div>

Для этого поля есть ошибка с кодом fill_in 'quote_mfg_process_id', :with => mfg.id (mfg — экземпляр процесса):

Capybara::ElementNotFound:
       Unable to find field "quote_mfg_process_id"

Ошибка аналогична при попытке со следующим:

fill_in 'quote[mfg_process_id]', :with => mfg.id
fill_in 'Mfg Process', :with => mfg.name

Однако для текстовых полей на той же странице ошибки нет. Мы поняли, что ошибка должна быть вызвана коллекцией, переданной в поле (такая же ошибка для другого поля коллекции). Согласно капибаре fill_in заполняет поля и просто передает текст метки или имя ввода. Но, похоже, это не относится к полю коллекции. Как правильно назвать поле коллекции в капибаре?


person user938363    schedule 27.02.2014    source источник


Ответы (1)


fill_in Capybara предназначен для текста< /strong> основанные поля. Вы хотите использовать select для выбора параметров.

person nowk    schedule 27.02.2014
comment
select(mfg.name, :from =› 'quote_mfg_process_id'). Спасибо. - person user938363; 27.02.2014