我对做某事的最佳方式感到困惑,并希望得到一些建议。
我有以下型号:
class Plan < ActiveRecord::Base
attr_accessible :description, :name, :user_id
validates :name, :presence => true
end
class Planplace < ActiveRecord::Base
attr_accessible :plan_id, :planplace
validates :planplace, :presence => true
end
class Plandate < ActiveRecord::Base
attr_accessible :plan_id, :plandate
validates :plandate, :presence => true
end
一个计划可以有许多计划日期和计划地点。我对这些中的每一个都有一个控制器,可以进行非常基本的创建。
class PlansController < ApplicationController
def create
@plan = Plan.new(params[:plan])
if @plan.save
flash[:success] = "Created ..."
else
flash[:alert] = "placeplace save error ..."
end
end
end
class PlanplacesController < ApplicationController
def create
@planplace = Planplace.new(params[:planplace])
if @planplace.save
flash[:success] = "Created ..."
else
flash[:alert] = "placeplace save error ..."
end
end
end
class PlandatesController < ApplicationController
def create
@plandate = Plandate.new(params[:plandate])
if @plandate.save
flash[:success] = "Created ..."
else
flash[:alert] = "plandate save error ..."
end
end
end
我需要做的是有一个单一的视图来创建一个计划,并允许使用该 plan.plan_id 保存多个计划日期和多个计划地点。
在基本层面上实现这一目标的最佳方法是什么(我的目标是在不重新加载的情况下进行 ajax 调用以进行保存,但我离这个还很远,我仍在努力学习)。
我是否将其放置在单个“新”平面图中?我玩过一个表单,它使用 fields_for 在同一个表单中更新多个模型,但我想大致了解在此之前采取的最佳方法。
我知道我需要在模型中使用 has_many 和 belongs_to 但我不确定进行完整保存的最佳方式,因此关系是正确的。
希望我已经很好地解释了这一点。任何关于最佳方法的建议都非常感谢。
(请客气,我现在才学习 Rails 一个月)
---编辑---我在这里制定了模型以及如何传递我需要的对象。我不认为我问这个问题是正确的,因为我有点困惑。感谢所有看过它的人。