0

私は 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

ヘルプ!

4

1 に答える 1