2012-04-14 4 views
1

제 컨트롤러에서 테이블의 일부 레코드를 가져 왔습니다. Js에 레코드 레코드를 보내고 내 페이지에 표시하려고합니다.루비의 정규 표현식 처리

@item_list = TransferDetail.find(:all) - Code to get data from table 

JS 측에서 JS 측

WebView.execute_js("replaceItemList('#{@item_list}')") 

function replaceItemList(item_list){ 
    alert (item_list); 
} 

경고 결과를 기록 전송

[{:source_id=>8, :object=>"11375810_0", :prefix=>"a",:unit=>"0", :description=>"xxxxx"}, {:source_id=>8, :object=>"11375810_1", :prefix=>"b", :unit=>"0", :description=>"yyyyy"}] 

같은 @item_list의 출력

[{:source_id=>8, :object=>"11375810_0", :prefix=>"a",:unit=>"0", :description=>"xxxxx"}, {:source_id=>8, :object=>"11375810_1", :prefix=>"b", :unit=>"0", :description=>"yyyyy"}] 

누구든지 내보기 페이지에 어떻게 표시 할 수 있는지 제안 해 줄 수 있습니다.

아래에서 구문 분석하고보기 페이지에 표시하는 방법을 알고 있습니다.

"{\"transferType\":\"D\", \"accountNumber\":\"132\", \"employeeId\":\"23\", \"orderedByPhone\":\"2423453453\", \"deliveryInstructions\":\"fdgfghvbn\"}" 

이처럼 내 @item_list 값을 변환하거나 나를

+0

제목이 전혀 이해가 가지 않습니다. 어쨌든 객체 배열의 문자열 표현보다는 JSON을 보내는 것이 더 합리적이지 않습니까? –

+0

@WebView.execute_js ("# {@ item_list.to_json}") " –

+0

@Joshua : 필드에 작은 따옴표가 있으면 실패합니다. 따라서 .gsub (" ","\\ ' ")'도 필요합니다. –

답변

0

내 요구 사항은 프론트 엔드에 테이블 (데이터베이스 레코드)를 전송하고 보여주는 것입니다 몇 가지 다른 제안을 알게하는 것이 가능하다. (모든) preferred_accessories_content = get_preferred_accessories_content WebView.execute_js ("replaceItemDetails ('# {preferred_accessories_content}')") 끝

def get_preferred_accessories_content 
    preferred_accessories_content = "" 
    @item_list.each do |pa| 
     preferred_accessories_content+= "<tr>" + "<td> #{pa.description} </td>"+"</tr>" 
    end 
    preferred_accessories_content 
end 
데프
@item_list = TransferDetail.find를 전송 아래와 같이 그래서 내가했다

여기서 "preferred_accessories_content"의 결과는 일반 html 테이블 행이므로 JS를 통해이 행을 내 뷰 페이지에 추가 할 수 있습니다.