본문 바로가기

공부방/Ruby&Rails

Sqlite를 활용한 기본 CRUD 작업 후 Flex에 연동해보기

앞서 작업을 통해 기본적으로 웹페이지에 DB의 내용을 뿌릴수 있었으며, 이를 xml로도 만들어 낼수 있다.
사실 rails 가 기본적으로 제공해주는 기능이다;;
앞서 작업한 녀석의 주소에 .xml만 붙여주면 확인해 볼수 있다.
이녀석을 가져와서 Flex의 DataGrid에 뿌려 봐야겠다.
먼저 플렉스에서 아래와 같이 심플하게 Datagrid 하나를 만들어 주었다.



















 

그 뒤 실행 시켜 보았지만!! Image_url의 태그명(?)이 언더바가 아닌 image-url로 되어 있는 관계로 해당 필드의 데이터만 연결되지가 않았다.

따라서 이녀석을 수정하기 위해 기본적으로 제공되는 xml 렌더 기능을 rails에서 죽였다.

방법은 controllers 폴더에 products_controller.rb를 열어서 
 

def index
    @products = Product.all
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :layout => false} #{ render :xml => @products }   <-- 요기 수정
    end
  end

요녀석을 수정해 준다.


다음 VIews 폴더의 products 폴더에 index.xml.builder 파일을 만들어 준뒤 
 

xml.instruct!
xml.products  do
  @products.each do |product|
    xml.product do
      xml.id product.id
      xml.title product.title
      xml.image_url product.image_url
      xml.description product.description
      xml.created_at product.created_at
      xml.updated_at product.updated_at
    end
  end
end

와 같이 xml 포맷을 직접 정의 해준다.


이제 flex에서 확인을 해본다.


잘나오면 성공 ㅎㅎㅎ