Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 如何验证字段的存在?_Validation_Ruby On Rails 4_Activerecord - Fatal编程技术网

Validation 如何验证字段的存在?

Validation 如何验证字段的存在?,validation,ruby-on-rails-4,activerecord,Validation,Ruby On Rails 4,Activerecord,当条件来自其他嵌套条件时,如何验证字段的存在 答案\u controller.rb 我可以最小化这个吗?在验证AnswerDetail中的名称之前,请加载所有模板详细信息 class AnswersController < CustomerTemplatesController def edit @answer = Answer.find(params[:id]) end def update @answer = Answer.fi

当条件来自其他嵌套条件时,如何验证字段的存在

答案\u controller.rb 我可以最小化这个吗?在验证
AnswerDetail
中的名称之前,请加载所有模板详细信息

class AnswersController < CustomerTemplatesController
    def edit
        @answer = Answer.find(params[:id])
    end

    def update
        @answer = Answer.find(params[:id])
        if @answer.update_attributes(answer_params)
            redirect_to :action => :index
        else
            render :edit
        end
    end
end
class Answer < ActiveRecord::Base
    has_many :answer_detail, -> lambda{ includes(:template_details).references(:template_details).where.not(:template_details => {:id => nil}) }, :dependent => :destroy
    accepts_nested_attributes_for :answer_details, :allow_destroy => true
    validates_associated :answer_details
end
class TemplateDetail < ActiveRecord::Base
    has_one :answer_detail
end
class AnswerDetail < ActiveRecord::Base
    belongs_to :answer
    belongs_to :template_detail
    validates :name, :presence => true, :if => lambda { template_detail.isrequired }
end
(0.2ms)  BEGIN
TemplateDetail Load (0.6ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 1 LIMIT 1
TemplateDetail Load (0.2ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 2 LIMIT 1
TemplateDetail Load (0.7ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 3 LIMIT 1
TemplateDetail Load (0.3ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 4 LIMIT 1
TemplateDetail Load (0.2ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 5 LIMIT 1
TemplateDetail Load (0.3ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 6 LIMIT 1
TemplateDetail Load (0.7ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 7 LIMIT 1
TemplateDetail Load (0.6ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 8 LIMIT 1
TemplateDetail Load (0.8ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 9 LIMIT 1
TemplateDetail Load (0.7ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 10 LIMIT 1
TemplateDetail Load (0.6ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 11 LIMIT 1
TemplateDetail Load (0.4ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 12 LIMIT 1
TemplateDetail Load (0.5ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 13 LIMIT 1
TemplateDetail Load (0.7ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 14 LIMIT 1
TemplateDetail Load (0.2ms)  SELECT  `template_details`.* FROM `template_details` WHERE `template_details`.`id` = 15 LIMIT 1
(0.5ms)  ROLLBACK