我正在与Rspec一起工作,因为它开发了一个'showtime'trail应用程序,它提供有关电影的信息。据我所知,我已经完全复制了代码(这本书在让读者了解每一步时都不是很好),但我收到了这个错误。
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 %>
如果您能提供任何建议,我将不胜感激。
答案 0 :(得分:4)
请尝试使用select "1980", :from => "Release year"
。如果您希望它显示为“发布年份”,请将标签更改为显示如下:
f.label :release_year, "Release Year"
Rails使用humanize方法自动为您设置标签格式,但您可以将其更改为您喜欢的任何内容。