# No se puede usar objeto en el bloque de add\_to\_serializer

**URL:** <https://meta.discourse.org/t/cant-use-object-in-block-of-add-to-serializer/290494>\
**Category:** Development\
**Created:** [4 Enero, 2024 10:51 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\
**Showing post:** 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:** [4 Enero, 2024 10:51 UTC](https://meta.discourse.org/t/cant-use-object-in-block-of-add-to-serializer/290494/1 "2024-01-04T10:51:58Z")

</div>

Hola! Actualmente estoy trabajando en el Plugin Multilingüe y, en el método `add_to_serializer`, deseo utilizar los argumentos `&block` proporcionando una lambda, para evitar la redundancia de código y pasarle argumentos.

```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)
    )

```

Sin embargo, cuando intento ejecutar Discourse, no se inicia y en su lugar me da este error, diciendo que `object` no está definido como variable local, ¡pero deseo usar la variable de Discourse y no una variable local!

```plaintext
<ruta a discourse>/plugin/discourse-multilingual/plugin.rb:228:in `block in activate!': undefined local variable or method `object' for #<Plugin::Instance:0x00007f3629ad0cf8 @assets=[["<ruta a discourse>/plugins/discourse-multilingual/assets/stylesheets/common/multilingual.scss", nil, "discourse-multilingual"], ["<ruta a discourse>/plugins/discourse-multilingual/assets/stylesheets/mobile/multilingual.scss", :mobile, "discourse-multilingual"]], @path="<ruta a discourse>/plugins/discourse-multilingual/plugin.rb", @enabled_site_setting=:multilingual_enabled, @directory_name="discourse-multilingual", @extra_js_file_path="<ruta a 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 <ruta a discourse>/plugins/discourse-multilingual/plugin.rb:28>]> (NameError)

```

Y cuando lo elimino para probar, dice que `scope` también es una variable local indefinida.

¿Tienes algún consejo? ¡Gracias de antemano!

---

_[View the full topic](https://meta.discourse.org/t/cant-use-object-in-block-of-add-to-serializer/290494)._
