Rails 4 - strong parameters concept involvement in spree-2.1

后端 未结 2 594
谎友^
谎友^ 2021-02-09 15:27

How to add new fields for spree::user in Spree-2.1 + Rails4 ?

Like my old customization: ==========================

Spree::User.class_eval do

a         


        
相关标签:
2条回答
  • 2021-02-09 16:27

    A change was recently made to spree_auth_devise which will allow you to set permitted attributes for Spree::User.

    This is the relevant line of code: https://github.com/spree/spree_auth_devise/blob/ac27effb5998e5875261f08655e442461a031370/app/controllers/spree/user_registrations_controller.rb#L69

    You'll need to add f_name and l_name to Spree::PermittedAttributes.user_attributes like so:

    # in an initializer
    Spree::PermittedAttributes.user_attributes << :f_name
    Spree::PermittedAttributes.user_attributes << :l_name
    

    More information about Spree::PermittedAttributes can be found in this pull request:

    https://github.com/spree/spree/pull/3566

    0 讨论(0)
  • 2021-02-09 16:31

    @gmacdougall is right, however I want to note that if you're doing this in an extension, you may want to do this via a decorator. Your extension would have to define this in an initializer that is installed by the user via a generator, which cannot be maintained.

    # lib/spree/permitted_attributes_decorator.rb
    Spree::PermittedAttributes.class_eval do
      @@user_attributes.push(:f_name, :l_name)
    end
    

    You can add new attributes for many models in the Spree:PermittedAttributes module. Spree controllers obtain these attributes via the methods included by the Spree::Core::ControllerHelpers::StrongParameters module.

    0 讨论(0)
提交回复
热议问题