0
時,我有兩個型號任務和DependecyTask,他們有他們之間的關係上的代碼好清楚。Rails的驗證,就會建立關係模型,但不保存
當我嘗試保存任務,驗證任務存在:真DependencyTask任務的屬性給,你可以看到錯誤,因爲任務模型尚未保存。
我怎樣才能解決這個問題,沒有刪除驗證:任務?
型號:
class DependencyTask < ActiveRecord::Base
belongs_to :task
belongs_to :before, :class_name => "Task"
validates :before, presence: true
validates :task, presence: true
validates :before_id, uniqueness: {scope: :task_id,
message: "No puede ser la misma tarea dependiente de si misma"}
end
class Task < ActiveRecord::Base
has_many :assignment_tasks, dependent: :destroy
has_many :users, through: :assignment_tasks
has_many :dependency_tasks, dependent: :destroy
has_many :befores, :through => :dependency_tasks
has_many :inverse_dependency_tasks, :class_name => "DependencyTask", :foreign_key => "before_id", dependent: :destroy
has_many :inverse_befores, :through => :inverse_dependency_tasks, :source => :task
accepts_nested_attributes_for :dependency_tasks
end
控制器:
class TasksController < ApplicationController
def create
@task = @project.tasks.create(params[:task].permit(:name, :length, :start_date, :end_date, :milestone_id, :description, {before_ids: []}, {user_ids: []}, :form => []))
respond_to do |format|
if @task.save
format.html { redirect_to project_path(@project) }
format.json { redirect_to 'edit', status: :created, location: @task }
else
format.html { render action: 'index' }
format.json { render json: @task.errors, status: :unprocessable_entity }
end
end
end
end
數據sended到服務器:
Processing by TasksController#create as HTML
Parameters: {"utf8"=>"âœ「", "authenticity_token"=>"fYRkppGw8ekRS3aBMwKSw8IU+8ayBdUKDw20/QT0r/g=", "task"=>{"name"=>"Architecture building and Cost estimate", "length"=>"20", "start_date"=>"16/01/2015", "end_date"=>"30/01/2015", "description"=>"", "milestone_id"=>"", "before_ids"=>["", "6"]}, "commit"=>"Crear Tarea", "locale"=>"es", "project_id"=>"8"}
錯誤:
["Dependency tasks task Can't be blank"]
{
:"dependency_tasks.task" => [
[0] "Can't be blank"
]
}
所有有用的評論將真正apreciated。
您使用的觀察員? –
我不知道這是什麼 – ppascualv