EDIT :
Для пояснения я хочу, чтобы количество элементов результирующего массива массивов динамически изменялось в зависимости от количества платформ. То есть Я хочу [[35, "assetname", "platname1", "platname2", "platname3"]], а не [[35, "assetname, [" platname1 "," platname2 "," platname3 "]]].
Я использую datatables как часть моего приложения на Rails. У меня есть метод, который генерирует ассоциацию ActiveRecord и передает ее на карту. Оперативный код выглядит так:
assets.map do |asset|
[
asset.id,
asset.name,
asset.thing
]
Но я хочу сделать что-то более хитрое - я хочу динамически сделать количество записей в результирующем массиве , чтобы оно было больше на основе # некоторого другого объекта. У меня есть объект под названием Платформы ... так что-то вроде этого
assets.map do |asset|
[
asset.id,
asset.name,
Platforms.all.each do |line|
line.platform_name.to_s,
end
]
Проблема в том, что ... это проблема синтаксиса. Независимо от того, что я делаю, я не могу заставить такую установку работать. Я попытался упростить - это работает (показывает 1 в последнем столбце):
assets.map do |asset|
[
asset.id,
asset.name,
[1].each do |line| line.to_s end
]
Но попробуйте разобраться с тем, чтобы иметь более одного элемента и не иметь кубиков:
assets.map do |asset|
[
asset.id,
asset.name,
[1,2].each do |line| line.to_s end
]
Это ставит просто "1,2" в последнем столбце. В то время как я хочу 1, затем 2 в своих двух столбцах, а не «1,2» в единственном столбце.
Что касается синтаксических ошибок, которые я получаю при попытке сделать это с моим реальным объектом:
app / datatables / assets_datatable.rb: 111: синтаксическая ошибка, неожиданный ключевое слово_end, ожидание '='
app / datatables / assets_datatable.rb: 142: синтаксическая ошибка, неожиданный ключевое слово_end, ожидание ']'
Как этого добиться? Чего я хочу добиться, так это иметь результирующий массив , в котором будет больше элементов для каждого количества платформ.