Я новичок в Capybara (используя 2.1.0), и я не могу получить его, чтобы заполнить некоторые поля в моем новом (Rails 4/Ruby 2) приложении. Поскольку это только что началось, приложение прост.Capybara не заполняет поля
Для моего пользователя # new, я заполняю одно поле, которое имеет валидацию, и оно сохраняет, когда оно действительно, и терпит неудачу, когда это не так. Отлично. У меня есть еще одна модель, и попробуйте сделать CoiReport # new, и она не работает.
Он продолжает терпеть неудачу с «Владелец не может быть пустым» (у него есть validate_presence_of validator), хотя если я сохраню__событие_страницы перед нажатием кнопки «Создать новое», поле заполняется. Поле является полем, поэтому я подумал, что это может быть это, но даже когда я изменил его на type = "text", он все равно терпит неудачу. Он также работает, когда я делаю это вручную.
Итак, оба эти элемента очень просты, но один работает, а другой нет, и я не могу представить, в чем разница!
Вот форма:
<%= form_for(@coi_record) do |f| %>
<% if @coi_record.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@coi_record.errors.count, "error") %> prohibited this coi_record from being saved:</h2>
<ul>
<% @coi_record.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :owner_id %><br>
<%= f.text_field :owner_id %>
</div>
<div class="field">
<%= f.label :signer_id %><br>
<%= f.text_field :signer_id %>
</div>
<div class="field">
<%= f.label :signed_at %><br>
<%= f.datetime_select :signed_at %>
</div>
<div class="field">
<%= f.label :is_current %><br>
<%= f.check_box :is_current %>
</div>
<div class="field">
<%= f.label :has_no_conflicts %><br>
<%= f.check_box :has_no_conflicts %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
А вот тест:
require 'spec_helper'
describe 'test2' do
it "should work!" do
visit '/coi_records/new'
page.should have_content('New coi_record')
within '#new_coi_record' do
fill_in 'Owner', :with => '1'
check 'Is current'
check 'Has no conflicts'
click_button 'Create Coi record'
end
# save_and_open_page
page.should have_content('Coi record was successfully created.')
end
end
Помощь!
Это не пахнет проблемой Капибары для меня. Можете ли вы попытаться отладить '@ coi_record' и проверить его состояние прямо перед строкой' @ coi_record.save' в вашем контроллере? – depa
Добавлен
<% = p @coi_record%>
. Запуск спецификации я вижу два выхода, один для первого попадания на страницу, второй, когда он не может сохранить и повторно отображает страницу для редактирования. Во втором случае Owner == 1, как и должно, и который должен позволить ему пройти проверку. #