0

私はデータを更新するためにこのアクションを持っています:

  def edit
    @project = Project.find(params[:id])
    if @project.team
      @team = Team.find(@project.id)
    else
      @team = Team.new
    end
  end

形:

= form_for @project do |f|
  ...
  = f.fields_for @team do |t|
  #if I use following: = f.fields_for :team do |t|, then the form inputs in this form are not displayed
    ...
  end

end

モデル:

class Project < ActiveRecord::Base
  has_one :team
  accepts_nested_attributes_for :team
end

class Team < ActiveRecord::Base
  belongs_to :project
end

フォームを送信しようとすると、次のエラーメッセージが表示されます

Team(#2501295380) expected, got ActiveSupport::HashWithIndifferentAccess(#2157764620)

SOで同様の投稿を見つけましたが、誰もこの問題を解決するのを手伝ってくれませんでした。そのため、すべてのアドバイスに非常に感謝しています。

どうもありがとう

4

1 に答える 1

2

これは私の問題を解決しています:

  def edit
    @project = Project.find(params[:id])
    unless @project.team.nil?
      @project.team
    else
      @project.build_team
    end  
  end
于 2012-06-14T09:57:19.353 に答える