0

我有一个用于“编辑”现有团队的表格。这是视图:

/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 时,我的怀疑被证明是正确的(即它的值没有通过)。

有谁知道我在这里哪里出错了?

谢谢你。

4

1 回答 1

1

问题是您需要在更新操作中定义@team,然后才能使用它。只需将此行添加到操作的开头:

@team = Team.find(params[:id])
于 2012-09-13T10:34:22.230 回答