私は Capybara (2.1.0 を使用) を初めて使用し、新しい (Rails 4/Ruby 2) アプリケーションの一部のフィールドに入力できません。始めたばかりなので、アプリはシンプルです。
私の User#new では、検証のある 1 つのフィールドに入力し、有効な場合は保存し、そうでない場合は失敗します。偉大な。私は別のモデルを持っていて、CoiReport#new を実行しようとしましたが、うまくいきません。
「所有者を空にすることはできません」(validate_presence_ofバリデーターがあります)で失敗し続けますが、クリックボタン「新規作成」の前にsave_and_open_pageを入力しても、フィールドが入力されます。フィールドはフィールドなので、それかもしれないと思っていましたが、 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
ヘルプ!