# Não é possível usar objeto no bloco de add\_to\_serializer

**URL:** https://meta.discourse.org/t/cant-use-object-in-block-of-add-to-serializer/290494
**Category:** Development
**Created:** [Janeiro 4, 2024, 10:51am UTC](https://meta.discourse.org/t/cant-use-object-in-block-of-add-to-serializer/290494 "2024-01-04T10:51:58Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Honeyxilia](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/honeyxilia/32/523830_2.png) [@Honeyxilia](https://meta.discourse.org/u/Honeyxilia)
#### Post date: [Janeiro 4, 2024, 10:51am UTC](https://meta.discourse.org/t/cant-use-object-in-block-of-add-to-serializer/290494/1 "2024-01-04T10:51:58Z")

</div>

Olá! Estou trabalhando atualmente no Multilingual Plugin e, no método `add_to_serializer`, desejo usar os argumentos `&block` fornecendo uma lambda, para evitar redundância de código e passar argumentos para ela.

```ruby
    corresponding_translation =
      ->(object, scope, translated_field_type, uncategorized_field_name, default_object_used) {
        if object.uncategorized?
          I18n.t(uncategorized_field_name, locale: I18n.locale)
        elsif !(object.slug_path && Multilingual::Translation.get(translated_field_type, default_object_used)).blank?
          Multilingual::Translation.get(translated_field_type, default_object_used)[client_locale.call(scope).to_sym] || default_object_used
        else
          default_object_used
        end
      }

add_to_serializer(
      :basic_category,
      :name,
      false,
      &block = corresponding_translation.call(object, scope, "category_name", 'uncategorized', object.name)
    )

```

No entanto, quando tento executar o Discourse, ele não inicia e, em vez disso, me dá este erro, dizendo que `object` é uma variável local indefinida. No entanto, desejo usar a variável do Discourse e não uma variável local.

```plaintext
<caminho para discourse>/plugin/discourse-multilingual/plugin.rb:228:in `block in activate!': undefined local variable or method `object' for #<Plugin::Instance:0x00007f3629ad0cf8 @assets=[["<caminho para discourse>/plugins/discourse-multilingual/assets/stylesheets/common/multilingual.scss", nil, "discourse-multilingual"], ["<caminho para discourse>/plugins/discourse-multilingual/assets/stylesheets/mobile/multilingual.scss", :mobile, "discourse-multilingual"]], @path="<caminho para discourse>/plugins/discourse-multilingual/plugin.rb", @enabled_site_setting=:multilingual_enabled, @directory_name="discourse-multilingual", @extra_js_file_path="<caminho para discourse>/app/assets/javascripts/plugins/discourse-multilingual_extra.js.erb", @color_schemes=[], @javascripts=[], @locales=[], @service_workers=[], @styles=[], @metadata=#<Plugin::Metadata:0x00007f3624f752e0 @name="discourse-multilingual", @about="Features to support multilingual forums", @version="0.2.9", @url="https://github.com/paviliondev/discourse-multilingual", @authors="Angus McLeod, Robert Barrow", @contact_emails="development@pavilion.tech">, @seed_data={}, @asset_filters=[], @idx=0, @initializers=[#<Proc:0x00007f362564b4c0 <caminho para discourse>/plugins/discourse-multilingual/plugin.rb:28>]> (NameError)

```

E quando o removo para testar, ele diz que `scope` também é uma variável local indefinida.

Você tem algum conselho? Agradeço desde já!
