尝试在Rails中保存嵌套属性时的ActiveRecord :: AssociationTypeMismatch

我阅读了很多关于`has_one关系和嵌套属性的页面,但是没有成功地完成这项工作。 任何帮助都会很棒。

每个用户都有_one网络。 我正在尝试以一种forms收集两个属性的信息,但ActiveRecord::AssociationTypeMismatch in UsersController#createexceptionActiveRecord::AssociationTypeMismatch in UsersController#create

传递的参数是:

 {"utf8"=>"✓", "authenticity_token"=>"I54tm1ovzHEHaXbBLTT+5tqBJv2795sKg978ot3HDBc=", "user"=>{"name"=>"Bilbo Baggins", "email"=>"bilbo@lotr.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "network"=>{"home_lng"=>"-87.91894912719727", "home_lat"=>"43.03812464542969", "center_lng"=>"-87.91894912719727", "center_lat"=>"43.03812464542969", "radius"=>"500"}}, "commit"=>"Sign up"} 

我猜测Network的参数必须以某种方式显示为network_attributes但我不知道如何。

控制器:

 def create @user = User.new(params[:user]) if (@user.save) sign_in @user flash[:success] = "One ring to rule them all!" redirect_to @user else @title = "The journey begins..." render 'new' end end 

视图:

    

当然还有模特:

 class User  "user_id", :dependent => :destroy accepts_nested_attributes_for :network, :reject_if => :all_blank, :allow_destroy => true end class Network < ActiveRecord::Base attr_accessible :home_lng, :home_lat, :center_lng, :center_lat, :radius belongs_to :user end 

谢谢

如果其他人遇到同样的问题,我通过更改解决了这个问题:

<%= f.fields_for @network do |fn| %> <%= f.fields_for @network do |fn| %><%= f.fields_for :network do |fn| %> <%= f.fields_for :network do |fn| %>并删除:network作为用户模型的可访问属性。

不确定,认为你需要:

 <%= f.fields_for @network, :network_attributes do |fn| %> 

如果从模型中删除:网络作为可访问的网络将无法确定