Ruby on rails 在生成情况下验证属于关联
我有一个任务模型,有很多任务,任务属于任务 为了安全起见,我对任务模型进行了以下验证:Ruby on rails 在生成情况下验证属于关联,ruby-on-rails,validation,belongs-to,Ruby On Rails,Validation,Belongs To,我有一个任务模型,有很多任务,任务属于任务 为了安全起见,我对任务模型进行了以下验证: validates_presence_of :mission_id validates_numericality_of :mission_id 但问题是,当创建任务并添加如下任务时: @mission.tasks.build 验证返回错误,因为任务上的任务id为空(任务尚未创建) 如果我删除了验证,任务和任务就成功创建了,但是我如何保持验证并继续工作呢? 我可以在保存后进行回调,但我认为这不对,
validates_presence_of :mission_id
validates_numericality_of :mission_id
但问题是,当创建任务并添加如下任务时:
@mission.tasks.build
验证返回错误,因为任务上的任务id为空(任务尚未创建)
如果我删除了验证,任务和任务就成功创建了,但是我如何保持验证并继续工作呢?
我可以在保存后进行回调,但我认为这不对,因为我不想在没有任务id的情况下保存任务
附言。
我把我的任务区藏在表格上。如果我能看到它,它会显示当前任务,一切正常。但是如果我把它藏起来,错误就会发生
<%= f.hidden_field :mission, :label => "Missão" %>
“Missão”%%>
表单是否正在重置控制器在新操作上给定的属性?验证嵌套属性时,应执行以下验证:
validates_associated :mission
在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
@mission=mission.new(参数[:mission])
task=@mission.tasks.build(params[:task])####这与task.new(:mission_id=>@mission.id)相同
如果@mission.save#这将仅在任务和任务有效时保存,并且它将自动将任务id分配给任务表,您无需担心
其他的
#您的错误代码将出现在这里。。。。。。。
结束
参考:-