Ruby on rails RubyonRails//需要特定的参数来执行特定的操作
我是rails新手,我正在尝试创建一个操作,用一些必填字段更新现有记录。现在我得到了这样的东西:Ruby on rails RubyonRails//需要特定的参数来执行特定的操作,ruby-on-rails,validation,ruby-on-rails-4,Ruby On Rails,Validation,Ruby On Rails 4,我是rails新手,我正在尝试创建一个操作,用一些必填字段更新现有记录。现在我得到了这样的东西: def assembling_params params.require(:device).permit(:assembling_time, :operator_assembling_name) end 现在它检查我的设备参数是否存在,并且只列出2个属性,并且它正在工作。 但是,我如何才能将这两个属性放在我的操作所需的位置呢?(我不想将其放入模型验证中,因为创建对象时这些属性不存在)
def assembling_params
params.require(:device).permit(:assembling_time, :operator_assembling_name)
end
现在它检查我的设备参数是否存在,并且只列出2个属性,并且它正在工作。
但是,我如何才能将这两个属性放在我的操作所需的位置呢?(我不想将其放入模型验证中,因为创建对象时这些属性不存在)
感谢您在适当的控制器中使用:
before_filter :validate_params
方法:
def required_params
[:some_attribute, :another_attribute]
end
def validate_params
unless (require_params - params.keys).count.zero?
# do something
end
您可以指定任意数量的需求 这可能看起来很难看,但它确实管用
def assembling_params
device_params = params.require(:device).permit(:assembling_time, :operator_assembling_name)
device_params.require(:assembling_time)
device_params.require(:operator_assembling_name)
device_params
end
正是我想要的,非常感谢塞吉奥!