0

我对做某事的最佳方式感到困惑,并希望得到一些建议。

我有以下型号:

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 一个月)

---编辑---我在这里制定了模型以及如何传递我需要的对象。我不认为我问这个问题是正确的,因为我有点困惑。感谢所有看过它的人。

4

1 回答 1

1

查看嵌套模型表单

在你的情况下,一个计划has_many :plandateshas_many :planplaces. Plandate 和 Planplace belongs_to :plan。然后,Plandates 和 Planplaces 需要一列用于plan_id:integer.

于 2012-11-03T16:36:58.383 回答