시나트라에서 웹개발중인데요..

150 views
Skip to first unread message

YongMin Lee

unread,
Nov 10, 2014, 12:23:55 AM11/10/14
to rub...@googlegroups.com

js 로 submit 을 했는데..

DB는 이렇구요.
class Ticket

include DataMapper::Resource
property :id, Serial
property :ticket_number, String
property :ticket_name, String
property :ticket_money, String
end

Data[0][ticket_number]
Data[0][ticket_name]
Data[0][ticket_money]
Data[1][ticket_number]
Data[1][ticket_name]
Data[2][ticket_money]
...

이런식으로 보내지는데..
post '/ticket' do
t = Ticket.new

t.ticket_number = session[:Data[0][ticket_number]]
t.ticket_name= session[:Data[0][ticket_name]]
t.save
end

이런식으로 쓰면 
undefined local variable or method `ticket_number' for #<Sinatra::Application:0x0000000367c250>

undefined local variable or method `ticket_name' for #<Sinatra::Application:0x0000000367c250>

이렇게 뜨는데...

어떻게 해결해야될까요??

그리고 저게 해결이되면 0번째 밖에 처리못하는데

만약 0,1 2개 혹은 0,1,2,3 이렇게 4개있다거나 할때 처리하는방법은 어떻게하나요...?

Shawn Jung

unread,
Dec 1, 2014, 6:09:27 PM12/1/14
to rub...@googlegroups.com
현재코드는 session 해쉬의 키부분에 문제가 있는데 아마 session['Data[0][ticket_number]']로 해야할것같네요.

stringify된 json으로 보낸담에 서버에서 parse해서 사용하는건 어떤가요?

JS
data_collection = [{number: '1', name: 'Ticket Name1'}, {number: '2', name: 'Ticket Name2'}]

$.ajax({
  url: '/tickets',
  type: 'post',
  dataType: 'json',
  contentType: 'application/json',
  data: JSON.stringify(data_collection)
})

RUBY
post '/ticket' do
  request.body.rewind
  ticket_data = JSON.parse request.body.read
  ticket_data.each do |data|
    ticket = Ticket.new data
    ticket.save
  end
end
Reply all
Reply to author
Forward
0 new messages