对象关系和将对象id传递给多个控制器?

时间:2012-11-03 14:51:43

标签: ruby-on-rails activerecord table-relationships

我对做某事的最好方法感到厌烦,并希望得到一些建议。

我有以下型号:

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保存多个plandate和几个planplaces。

在基本级别实现这一目标的最佳方式是什么(我的目标是在没有重新加载的情况下进行ajax调用以保存,但我还远没有这个,我还在努力学习)。

我是否将其置于单个“新”平面视图中?我已经玩了一个使用fields_for来更新同一个表单中的一个模型的表单,但是我希望能够大致了解在进行此操作之前采用的最佳方法。

我知道我需要在模型中使用has_many和belongs_to,但我不确定完成保存的最佳方法,因此关系是正确的。

希望我已经很好地解释了这一点。 关于最佳方法的任何建议都非常感谢。

(请善待,我现在只学习Rails一个月了)

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

1 个答案:

答案 0 :(得分:1)

查看nested model forms

在您的情况下,计划has_many :plandateshas_many :planplaces。 Plandate和Planplace belongs_to :plan。然后,Plandates和Planplaces需要plan_id:integer列。