0

Rest から JSON 形式で返されたオブジェクトの配列があります。デバッグすると、参照が表示されます。ビューの 1 つに do ループを追加しましたが、オブジェクトのプロパティがありません。配列をキャストするなど、何かする必要がありますか? 私はルビーが初めてで、検索してもこれに固有のものは何も見つかりませんでした。

PolicyList でない最初のコントローラ

   data3 = data2.map { |rd| PolicyList.new(rd["policyNbr"], rd["systemId"], rd["insuredName"], rd["type"], rd["statusCd"], rd["statusDes"], rd["payorZipcode"], rd["lastPaymentDate"], rd['lastPaymentAmount'], rd["pastDueDate"], rd["pastDueAmount"], rd["currentDueDate"], rd["currentDueAmount"], rd["eft"], rd["suspenseAmt"], rd["expireTime"]) }
     $policylist =data3       
     puts data3.inspect


    WebView.navigate(url_for(:controller => :PolicyList, :action => :index))

PolicyList コントローラ

      def index
        #@policylists = PolicyList.find(:all)
         @policylists = $policylist
         render :back => '/app'
      end

PolicyList index.erb

  <ul data-role="listview">
  <% @policylists.each do |policylist| %>

      <li>
        <a href="<%= url_for :action => :show, :id => policylist.policyNbr %>">
          <%= policylist.policyNbr %>
        </a>
      </li>

  <% end %>
</ul>

PolicyList クラス

 # The model has already been created by the framework, and extends Rhom::RhomObject
 # You can add more methods here
 class PolicyList
       include Rhom::PropertyBag
         attr_accessor  :policyNbr, :systemId, :insuredName,
            :type, :statusCd, :statusDes, :payorZipcode,
            :lastPaymentDate,:lastPaymentAmount,:pastDueDate,
            :pastDueAmount,:currentDueDate,:currentDueAmount,:eft,
            :suspenseAmt,:expireTime
4

1 に答える 1

0

(マッピングの前に)data2変数を調べてみてください。
おそらく、JSONのデータには次のようなルート要素があります。

[
 {"policy":{
   "policyNbr":"1",
   "systemId":"2"
   }
 },
 {"policy":{
   "policyNbr":"3",
   "systemI‌​d":"4"
   }
 }
]
于 2013-03-04T19:20:09.803 に答える