No route matches - problem z akcją kontrolera

Mam następujący problem. Chcę edytować wcześniej utworzony już obiekt i mam problem z widokiem dla tego kontrolera, a konkretnie jak mi się wydaje z metodą link_to

articles_controller.rb dwie interesujące mnie metody -
def edit
@article = Article.find(params[:id])
end

def update
@article = Article.find(params[:id])
if @article.update_attributes(params[:article])
redirect_to articles_path
else
render :action => “edit”
end
end

index.html.rb

<td><%= link_to 'edit', edit_article_path(@article) %></td>

routing

articles GET    /articles(.:format)          articles#index
         POST   /articles(.:format)          articles#create

new_article GET /articles/new(.:format) articles#new
edit_article GET /articles/:id/edit(.:format) articles#edit
article GET /articles/:id(.:format) articles#show
PUT /articles/:id(.:format) articles#update
DELETE /articles/:id(.:format) articles#destroy

Ewentualnie do podejrzenia https://github.com/aplaskota/blog

A tu error

Routing Error

No route matches {:action=>“edit”, :controller=>“articles”, :id=>nil}

Try running rake routes for more information on available routes.

gdy natomiast edytuję wszystko wpisując url ręcznie articles/5/edit poprawnie wyświetla mi się formularz i poprawnie się on edytuje

Czy w momencie wywołania metody link_to zmienna @article jest ustawiona?
Bo to jak na index wygląda trochę dziwnie, tu obstawiałbym problem. Jeśli to jest w iteracji, pewnie Ci się walnęło i wpisałeś @article, gdzie powinno być article (bo tak zgodnie z konwencją nazywamy zmienną przekazywaną do bloku przy wywoływaniu @articles.each).

Oczywiście masz rację. Teraz wszystko działa jak należy. Dzięki za szybką pomoc :slight_smile: