Skip to content

Hash.try_convert(attributes) errors on params in Rails 5 #389

@natesholland

Description

@natesholland

I'm running into an error specifically with this line of code:

::Hash.try_convert(attributes) or raise(

In Rails 4 and below calling to_hash on parameters was easy and returned the expected hash as follows:

> ::Hash.try_convert(ActionController::Parameters.new({foo: "bar"}))
 => {"foo"=>"bar"}

However this behavior changed in Rails 5 and started to raise an error:

> ::Hash.try_convert(ActionController::Parameters.new({foo: "bar"}))
 => ActionController::UnfilteredParameters (unable to convert unpermitted parameters to hash)

Therefore I think Virtus needs to be slightly more intelligent about how it coerces to a hash.
I have gone ahead and implemented a PR that should fix the issue I am seeing as well as a test to replicate the issue and verify it's fix in #388

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions