ActiveSupport::HashWithIn DifferentAccess при обновлении встроенной формы

Я получаю сообщение об ошибке ActiveSupport::HashWithIn DifferentAccessпри попытке обновить встроенную форму.

Вот самый простой пример:

Форма:

<h1>PlayersToTeams#edit</h1>
<%= form_for @players_to_teams do |field| %>
    <%= field.fields_for @players_to_teams.player do |f| %>
        <%= f.label :IsActive %>
        <%= f.text_field :IsActive %>
    <% end %>
    <%= field.label :BT %>
    <%= field.text_field :BT %>
    <br/>
    <%= field.submit "Save", class: 'btn btn-primary' %>
<% end %>

Модели:

class PlayersToTeam < ActiveRecord::Base
  belongs_to :player
  belongs_to :team

  accepts_nested_attributes_for :player
end

class Player < ActiveRecord::Base
  has_many :players_to_teams
  has_many :teams, through: :players_to_teams
end

Контроллер:

class PlayersToTeamsController < ApplicationController
  def edit
    @players_to_teams=PlayersToTeam.find(params[:id])
  end

  def update
    @players_to_teams=PlayersToTeam.find(params[:id])
    respond_to do |format|
      if @players_to_teams.update_attributes(params[:players_to_team])
        format.html { redirect_to @players_to_teams, notice: 'Player_to_Team was successfully updated.' }
        format.json { head :no_content }
      else
        format.html { render action: "edit" }
        format.json { render json: @players_to_teams.errors, status: :unprocessable_entity }
      end
    end
  end
end

Это объект params[:players_to_team]при отправке формы:

:players_to_team

Что делает значит ошибка ActiveSupport::HashWithIn DifferentAccess? Что мне нужно сделать, чтобы эта форма обновила запись player_to_team?

Редактировать

BT— это столбец в player_to_teams. Если я удалю блок field_for, я смогу успешно сохранить поле BT/строку player_to_teams.

Спасибо

8
задан Tyler DeWitt 5 April 2012 в 02:13
поделиться