2016-07-08 3 views
0

просто пытается петля через мой рассказ модель .. и создать объект JSON и вставить его в вызов и отправить его .. Но я не уверен, как петлю через историю ..Loop, чтобы создать объект JSON

I «ве сделали это:

@stories = Array.new 

Story.where(newsletter_id: current_user.selected_newsletter) do |story| 
@stories << { 
    :title => story.title, 
    :image_url => story.image_url 
} 
end 

и я пытаюсь вставить ти петлю в этом формате JSON ОБЪЕКТ

"message" => { 
    "attachment" => { 
     "type" => "template", 
     "payload" => { 
     "template_type" => "generic", 
     "elements" => [{this is the array}] 
     } 
    } 
} 

массив с несколькими историями должен выглядеть следующим образом:

[ 
    { 
    "title" => "title....1", 
    "image" => "image....1" 
    }, 
    { 
    "title" => "title....2", 
    "image" => "image....3" 
    } 
    .... 
] 

ответ

3

Попробуйте следующее:

@stories = Story.where(newsletter_id: current_user.selected_newsletter) 
       .select(:title, 'image_url as image').as_json(except: :id) 

И потом:

{ 
    "message" => { 
    "attachment" => { 
     "type" => "template", 
     "payload" => { 
     "template_type" => "generic", 
     "elements" => @stories 
     } 
    } 
    } 
} 
+0

Направо, я пытался, что так и не сделает вызов .. я думаю, что его, так как массив с идентификаторами и должен быть только заголовок и изображение: '{" id "=> nil," title "=>" ... "," image_url "=>" ... "}' .. thats, что я получаю, но массив это отличное спасибо за это! – liborza

+0

@ LiborZahrádka: есть только 'title' и' image_url'. Вам нужно, чтобы это было «image» или «image_url?» – potashin

+0

U правильно. Мне нужно сделать вызов с помощью 'image', но в db im сохранить его как' image_url' – liborza

Смежные вопросы