3

私はRspecの本と協力して、映画に関する情報を提供する「showtime」railsアプリケーションを開発しています。私の知る限り、コードを正確にコピーしましたが(この本は、読者にすべてのステップを知らせるのにそれほど優れていません)、このエラーが発生します。

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ファイルにはこのコードがあり、Capybaraが見つけられない要素であるリリース年を選択するための選択ボックスをユーザーに提供します。

#---
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 %>

ご提案いただければ幸いです。

4

1 に答える 1

4

select "1980", :from => "Release year"代わりに試してください。「リリース年」として表示する場合は、ラベルを次のように変更します。

f.label :release_year, "Release Year"

Rails はhumanizeメソッドを使用してラベルを自動的にフォーマットしますが、好きなように変更できます。

于 2013-01-23T14:40:30.457 に答える