Rails formtastic - 编辑表单不传递实例到控制器中的更新方法

时间:2012-09-13 10:27:11

标签: ruby-on-rails ruby formtastic

我有一个用于“编辑”现有团队的表单。以下是观点:

/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在更新方法中检查它是零时(即它的值没有通过),我的怀疑被证明是正确的。

有谁知道我在哪里出错?

谢谢。

1 个答案:

答案 0 :(得分:1)

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

@team = Team.find(params[:id])