我有一个用于“编辑”现有团队的表单。以下是观点:
/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 /编辑并更改团队名称并单击Update以提交表单时,它会给出错误:未定义的方法`update_attributes'为nil:NilClass
在控制器的更新方法开始时,我做了一个:
raise @team.inspect
当我看到@team在更新方法中检查它是零时(即它的值没有通过),我的怀疑被证明是正确的。
有谁知道我在哪里出错?
谢谢。
答案 0 :(得分:1)
问题是您需要在更新操作中定义@team才能使用它。 只需将此行添加到操作的开头:
@team = Team.find(params[:id])