Rails:ActionController :: Parameters#delete返回值而不是键值对?

时间:2017-12-08 13:59:04

标签: ruby-on-rails ruby

根据Rails API ActionController::Parameters#delete

  

从密钥等于key的Parameters中删除并返回键值对。如果未找到密钥,则返回默认值。如果给出了可选的代码块并且找不到密钥,则传入密钥并返回块的结果。

然而,当我从轨道上的班级中提取参数并做了一个 .class,它会返回Array而不是Hash

def create
    @var = myClass.new(param_function.except(:param1))
    weird = param_function.delete(:param5)
    puts weird.class
end

def param_function
    params.require(:my_class).permit(
      :param1,
      :param2,
      :param3,
      :param4,
      :param5 => []
    )
 end

delete,应返回密钥为param5且值为array的哈希值,因此weird应为哈希值。但是,它会将数组作为结果。

0 个答案:

没有答案