既存のチームを「編集」するために使用しているフォームがあります。ビューは次のとおりです。
/app/views/teams/edit.html.erb
<%= semantic_form_for @team do |f| %>
<%= f.inputs %>
<%= f.actions %>
<% end %>
そして、ここにコントローラーのコードがあります:
/app/controllers/teams_controller.rb
def edit
@team = Team.find(params[:id])
end
def update
if @team.update_attributes(params[:team])
redirect_to @team
else
render 'edit'
end
end
ただし、/teams/1/edit に移動してチームの名前を変更し、[更新] をクリックしてフォームを送信すると、エラーが発生します: undefined method `update_attributes' for nil:NilClass
コントローラーの更新メソッドの開始時に、次のことを行いました。
raise @team.inspect
@team が更新メソッドで検査されたのを見て、私の疑いは正しかったことが証明されました。それは nil でした (つまり、値が渡されませんでした)。
ここで私がどこで間違っているのか誰か知っていますか?
ありがとうございました。