Ruby on Rails - как получить конкретный атрибут объекта через js? - PullRequest
0 голосов
/ 13 февраля 2019

Я застрял на получении определенных атрибутов объекта в рельсах.Я могу видеть все атрибуты объекта, если я console.log(installable), но по какой-то причине я могу использовать только некоторые из них.

Мне нужно получить имя производителя из атрибутов.Я пробовал несколько разных способов, и ни один из них, похоже, не работает.Результат всегда «неопределен».Но если я пытаюсь получить ID из атрибутов, то это работает.Я могу видеть и идентификатор, и имя производителя в разделе атрибутов журнала консоли, но почему я не могу получить имя производителя в своей функции?

Это все делается в файле model_view.coffee

Также:

installable.get('manufacturer_name') - возвращает неопределенное значение

installable.get('id') - возвращает правильный идентификатор

Я пытался installable.attributes['manufacturer_name'], который не работает, но installable.attributes['id'] работает.

Этот код просматривает все геометрии и находит для них устанавливаемые:

@geometries.forEach (model) =>

  installable = @findInstallable(model)
  console.log(installable)

Функция, которая находит устанавливаемый объект:

  findInstallable: (geometry) ->
    installableId = geometry.get('installable_id')
    installable = null

    _.any UPB.InstallationBuilder.installableCollectionRegistry, (collection) =>
      installable = collection.get(installableId)
      !!installable # stop searching after the first match

    installable

Это то, что я получаю отжурнал консоли:

Installable {cid: "c468", attributes: {…}, _changing: false, _previousAttributes: {…}, changed: {…}, …}
attributes:
adjusted_type_id: 40
area_m2: 7.89
can_install: false
can_uninstall: false
color_class: "new"
detail_order_deadline: null
drawing_files: []
element_id: 33
id: 330
identical_id: 33
installation_date: null
installation_planning_finished: false
installation_team_id: null
manufacturer_color_code: "#FF6600"
manufacturer_installation_buffer_days: null
manufacturer_name: "ABC Prefab"
manufacturer_type: "Company"
name: "MBD-10032"
part_dimensions: "200 / 6595 / 1200"
project_name: "ABC1 : Concrete (ABC Prefab)"
revision: null
ship_delivery_note_id: null
ship_delivery_note_number: null
source_id: 33
source_type: "Element"
stage_id: 2
state: "new"
transport_by_ship: false
type_color: "#993300"
type_id: 4
url: "/company_stages/2/elements/33"
volume_m3: 0.8477
weight_kg: 2060
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...