Got it myself! Splat operator to the rescue :)
params.require(:foo).permit(*Foo::DOCUMENT_FIELDS.map(&:to_sym))
Den fredagen den 8:e mars 2013 kl. 10:27:50 UTC+1 skrev Linus Pettersson:
>
> Hi
>
> I have an hstore field in my database where I store a lot of different
> fields.
>
> I still want getters, setters and validations for my fields so I've
> created an array with the fields like this:
>
> DOCUMENT_FIELDS = %w[foo bar baz]
>
> Then I do some meta programming to create getters and setters:
>
> DOCUMENT_FIELDS.each do |field|
> define_method(field) do
> # ....
> end
>
> define_method("#{field}=") do |value|
> # ...
> end
> end
>
> Now I would like to pass all fields to strong parameters to properly
> filter it. I tried like this:
> params.require(:foo).permit(Foo::DOCUMENT_FIELDS.map(&:to_sym))
>
> But this doesn't work. It removes all values anyway. I guess it is because
> `Foo::DOCUMENT_FIELDS.map(&:to_sym)` creates an array that is passed to
> strong parameters (and it seems to not work with arrays).
>
> How can I get around this?
>
> Cheers,
> Linus
>
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msg/rubyonrails-talk/-/7OPprSifa40J.
For more options, visit https://groups.google.com/groups/opt_out.