Ruby on rails 轨道4+;以一种形式编辑多个对象最佳做法

Ruby on rails 轨道4+;以一种形式编辑多个对象最佳做法,ruby-on-rails,ruby-on-rails-3,nested-form-for,Ruby On Rails,Ruby On Rails 3,Nested Form For,我有一个用户,饮料,健身房,食品模型 class User < ActiveRecord::Base has_many :drinks has_many :foods has_many :gyms end 所以我的问题是:在这种情况下,最好的做法是什么?只使用一个控制器的嵌套表单;在用户控制器中,当您使用时,用户的更新操作也将更新其相关模型,并接受的嵌套属性,因此基本上您的用户模型将 class User < ActiveRecord::Base has_many

我有一个用户,饮料,健身房,食品模型

class User < ActiveRecord::Base
 has_many :drinks
 has_many :foods
 has_many :gyms
end


所以我的问题是:在这种情况下,最好的做法是什么?

只使用一个控制器的嵌套表单;在用户控制器中,当您使用
时,用户的更新操作也将更新其相关模型,并接受
的嵌套属性,因此基本上您的用户模型将

class User < ActiveRecord::Base
  has_many :foods
  has_many :drinks
  has_many :gyms
  accepts_nested_attributes_for :foods, :drinks, :gyms
end
class DataController 
 def update

  if params[:drinks]
   #update drinks
  elsif params[:foods]
   #update foods
  elsif params[:gyms]
   #update gyms
  end
 end
end
class User < ActiveRecord::Base
  has_many :foods
  has_many :drinks
  has_many :gyms
  accepts_nested_attributes_for :foods, :drinks, :gyms
end
def user_params
 params.require(:user).permit(:id, .... , foods_attributes: [:id, :destroy, ....], gyms_attributes: [:id, :_destroy, ....], drinks_attributes: [:id, :_destroy, ....])
end