Я решил эту проблему сейчас, но сделал это немного по-другому. У меня есть куча, если редактирую ссылки, для которых я установил ID равным Edit_ *, где * - идентификатор статьи. Затем у меня есть шаг огурца, который получает идентификатор статьи из базы данных, используя имя, а затем переходит по ссылке с идентификатором Edit_ *. Вот мой обновленный код:
Функция
Scenario: Update an existing article
Given I have an article with title "Big Bananas" and body text "Big yellow bananas are good for you"
And I am on the list of articles
When I follow "Edit" for "Big Bananas"
And press "Update article"
And I fill in "Title" with "Massive Bananas"
And I press "Save"
Then I should have an article titled "Massive Bananas"
And I should not have an article titled "Big Bananas"
View
<table>
<tr>
<th>Articles</th>
<th>Tags</th>
<td></td>
</tr>
<% @articles.each do |article| %>
<tr>
<td><%= article.title %></td>
<td>
<%article.tags.each do |tag|%>
<div><%= tag.name %></div>
<%end%>
</td>
<td><%= link_to "Edit", {:controller => "articles", :action => "edit", :id => article.id}, :id => "Edit_" + article.id.to_s %></td>
</tr>
<%end%>
</table>
<%= link_to "New article", :action => "new" %>
<% if flash[:notice] %>
<%= flash[:notice] %>
<% end %>
Шаг огурца, чтобы щелкнуть правильную ссылку для редактирования
When /^I follow "([^\"]*)" for "([^\"]*)"$/ do |link, article_title|
article = Article.find_by_title article_title
click_link link + "_" + article.id.to_s
end
Надеюсь, это поможет любому, у кого возникла такая же проблема.