2013-01-23 5 views
3

영화에 대한 정보를 제공하는 'showtime'레일 응용 프로그램을 개발하면서 Rspec 서적과 함께 작업하고 있습니다. 제가 말할 수있는 한, 코드를 정확히 복사했습니다 (독자가 취할 수있는 모든 단계를 알게 해준 책은 아닙니다).하지만이 오류가 발생합니다.Capybara :: Element Not Found

Unable to find select box "Release Year" (Capybara::ElementNotFound) 
     ./features/step_definitions/movie_steps.rb:6:in `/^I create a movie Caddyshack in the Comedy genre$/' 

내 movie_steps.rb 파일 카피 바라 찾을 수없는 요소 인 출시 년도를 선택하는 사용자에게 선택 상자를 제공하는이 코드를 가지고있다.

#--- 
When /^I create a movie Caddyshack in the Comedy genre$/ do 
    visit movies_path 
    click_link "Add Movie" 
    fill_in "Title", :with => "Caddyshack" 
    select "1980", :from => "Release Year" 
    check "Comedy" 
    click_button "Save" 
end 

Then /^Caddyshack should be in the Comedy genre$/ do 
    visit genres_path 
    click_link "Comedy" 
    response.should contain("1 movie") 
    response.should contain("Caddyshack") 
end 

영화보기에는이 코드가 있습니다.이 코드는 선택 상자를 구현하는 데 필요한 모든 것입니다.

<%= form_for @movie do |f| %> 
    <%= f.label :title %> 
    <%= f.text_field :title %> 
    <%= f.label :release_year %> 
    <%= f.select :release_year, (1900..2009).to_a.map(&:to_s) %> 
    <% @genres.each do |genre| %> 
    <label> 
     <%=h genre.name %> 
     <%= check_box_tag "genres[]", genre.id %> 
    </label> 
    <% end %> 
    <%= f.submit "Save" %> 
<% end %> 

제공 할 수있는 제안에 감사드립니다.

+0

페이지의 실제 html을 제공 할 수 있습니까? –

답변

4

select "1980", :from => "Release year"을 대신 시도하십시오.

f.label :release_year, "Release Year" 

레일 자동으로 humanize 방법을 사용하여 레이블의 형식을,하지만 당신은 당신이 좋아하는 무엇으로 변경할 수 있습니다 : 당신이 "출시 연도"로 표시 할 경우, 다음과 같이 표시하는 라벨을 변경합니다.