2013-03-26 3 views
0

여기에 다른 JSON 렌더링 문제를 연구했지만 배열로 끝내려하지 않는 것을 발견하지 못했습니다. 해시로 렌더링하는 것에 대한 많은 게시물을 발견했지만 도움이되지 않았습니다.하나의 DB 열에서 문자열의 JSON 배열을 렌더링합니다.

최근 시도는 다음과 같습니다

def create 
    params[:_json].each do |ip| 
    IpAddress.create(ip: ip) 
    end 

    ips = IpAddress.pluck(:ip) 

    ips.each do |ips| 
    ips.to_s 
    end 

    render json: ips 
end 

뿐만 아니라

def create 
    params[:_json].each do |ip| 
    IpAddress.create(ip: ip) 
    end 
    render json: IpAddress.all, methods: [:ip]  
end 

이러한 시도는 모두 데이터베이스 행의 전체 배열을 반환합니다.

도움을 주시면 감사하겠습니다. 감사!

+0

'ips = IpAddress.pluck (: ip)'그리고'render json : {ips : ips}'? – MrYoshiji

답변

0

미안하지만, 내 def create action은 중요하지 않습니다. 렌더링이 제대로되었지만 문제가 발생하면 배열을 제대로 저장했는지 확인하기 위해 인덱스 작업을 수행하고 있기 때문에 테스트에 실패했습니다. 그래서, 내가 덧붙였다

def index 
    render json: IpAddress.pluck(:ip) 
    end 

그리고 나의 테스트는 통과했다.

도움 주셔서 감사합니다.

+0

적어도 질문을하는 것이 당신의 문제를 해결하는 데 도움이되었습니다. – scones

+0

그게 전부입니다! 나는 이것에 시간을 보냈고, 10 분 후에 나는 내 질문을 추가했다. 그래서 에티켓 : 나는 내 자신의 대답을 받아 들여야합니까 (아마도 다른 사람에게 도움이 될 것입니다) 아니면 전체 질문을 삭제해야합니까? – aceofbassgreg

+0

죄송합니다, 신경 쓰지 마세요. Meta에서는 다른 답변이 제공되면 삭제할 수 없습니다. – aceofbassgreg

0

일반적으로 작동합니다. 데이터베이스 항목을 작성하는 동안 배열을 작성한 다음이를 리턴하십시오.

def create 
    ips = params[:_json].inject([]) do |a, ip| 
    a << IpAddress.create!(ip: ip).ip 
    a 
    end 
    render json: {ips: ips} 
end 
관련 문제