我对做某事的最好方法感到厌烦,并希望得到一些建议。
我有以下型号:
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一个月了)
---编辑--- 我在这里制定了模型以及如何传递我需要的对象。因为我有点困惑,我不认为我正确地问了这个问题。感谢所有看过它的人。
答案 0 :(得分:1)
在您的情况下,计划has_many :plandates
和has_many :planplaces
。 Plandate和Planplace belongs_to :plan
。然后,Plandates和Planplaces需要plan_id:integer
列。