我有一个任务模型的has_many任务和任务belongs_to的任务

有关安全我已完成此验证的任务模型:

  validates_presence_of :mission_id
  validates_numericality_of :mission_id

但问题是,当这样的创建任务,并添加任务:

 @mission.tasks.build

验证返回错误,因为在任务任务ID为空(任务尚未创建)

如果我删除了验证,使命和任务表被成功创建,但我怎能验证,仍然有这个工作呢? 我可以做一个回调后保存,但我不认为这是正确的,因为我不希望保存任务没有mission_id。

P.S。 我hidding表单上我的团场。如果我有它明显的,它会显示确认当期的使命,一切正常。但是,如果我hidde它错误发生。

<%=  f.hidden_field :mission, :label => "Missão" %>

时正在重置由控制器上的新的操作给定的属性的形式?

有帮助吗?

解决方案

使用在Mission.rb以下

has_many :tasks
validates_associated :task

Task.rb

belongs_to :mission

在控制器

@mission=Mission.new(params[:mission])  
task= @mission.tasks.build(params[:task]) ###this is same as Task.new(:mission_id=>@mission.id)

if @mission.save #this will save only when mission as well as task are valids, also it will automatically assign mission_id to tasks table you have nothing to worry about it<br>
else
    #your error code will be here.......
end

价: - http://api.rubyonrails.org/classes/的ActiveRecord /验证/ ClassMethods.html

其他提示

当验证的嵌套属性,应执行下面的验证:

 validates_associated   :mission
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top