Adicione uma configuração personalizada por usuário em um plugin

Estou testando isto aqui

e compila bem. Não tenho certeza sobre a funcionalidade, pois nunca usei o plugin e não tenho ideia do que testar.

A assinatura do método register_editable_user_custom_field é um nome de campo e um sinalizador opcional para marcá-lo como staff_only, então, até onde sei, passar um array para ele é inesperado?

3 curtidas

Sim, é incomum?

Mas aparentemente a solução do David parece resolver o problema.

Isso:

  register_editable_user_custom_field :geo_location if defined? register_editable_user_custom_field
  register_editable_user_custom_field geo_location: {} if defined? register_editable_user_custom_field

quebra. Isso não quebra:

 register_editable_user_custom_field [:geo_location,  geo_location: {}] if defined? register_editable_user_custom_field

Parece que a versão do Ruby forçou essa mudança?

De qualquer forma, acredito que temos uma solução e devemos atualizar o OP?

Precisarei fazer uma alteração em mais um plugin e atualizarei a wiki acima se estiver satisfeito.

2 curtidas

Para sua informação, parece estar funcionando tanto na construção quanto no funcionamento :tada:

Obrigado pela sua ajuda.

2 curtidas

Eu acho que é isto, Separation of positional and keyword arguments in Ruby 3.0

5 curtidas

Olá :wave:

Estou tentando criar um campo de usuário personalizado a partir de um plugin, mas não tenho certeza se entendi completamente o que você está descrevendo aqui. No meu plugin, se eu fizer:

register_editable_user_custom_field 'foo'

Eu ainda devo usar conectores de plugin outlets para exibi-lo no perfil do usuário e no cartão do usuário?

Ou existe um mecanismo como o campo personalizado no admin que pode adicioná-lo automaticamente (incluindo no diretório de usuários)? Quero evitar adicionar campos de conector e serializador se já houver uma maneira de fazer isso.

Obrigado pela sua ajuda!

1 curtida

Veja?:

1 curtida

Olá @merefield, obrigado pelo link, mas não é o que estou perguntando. Parece que é para tornar um campo personalizado criado no admin não visível, exceto com uma chave de API de staff.

Se não fui claro, deixe-me reformular: existe uma maneira de registrar um campo de usuário personalizado com um plugin, assim como podemos fazer nos "Campos de Usuário" do admin (editável, pesquisável, exibido no perfil do usuário, no cartão do usuário, etc.)?

2 curtidas

Desculpe, será que isto seria mais útil então?:

Todos os modelos principais têm uma capacidade de Campo Personalizado.

2 curtidas