2010-01-05 13 views
0

首先,我有一個在rails上使用Ruby創建的數據庫。 我剛剛在我的Android應用程序中實現了插入函數(HTTPPost),它的工作。 但我不知道如何從我的數據庫中檢索特定的記錄,並在Android中插回特定記錄(如在回報率編輯功能)Android:如何在Android編程中編輯數據庫中的特定記錄(在rails上使用Ruby)

這是我的插入代碼:

私人無效insertComment() DefaultHttpClient client = new DefaultHttpClient();

HttpPost post = new HttpPost("http://10.10.3.87:3000/comments"); 

    // Configure the form parameters 
    List<NameValuePair> nvps = new ArrayList<NameValuePair>(); 
    nvps.add(new BasicNameValuePair("comment[content]", t_comment.getText().toString())); 
    nvps.add(new BasicNameValuePair("comment[id_account]", "1")); 
    nvps.add(new BasicNameValuePair("comment[id_place]", Integer.toString(position))); 

    try { 
     post.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); 
    } catch (UnsupportedEncodingException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    HttpResponse response = null; 
    try { 
     response = client.execute(post); 
    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    HttpEntity entity = response.getEntity(); 
    if (entity != null) { 
     try { 
      entity.consumeContent(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

    Toast.makeText(this, "Your post is successfully uploaded", 
      Toast.LENGTH_SHORT).show(); 

    t_comment.setText(""); 
} 

我真的嘗試了很多方法,但它不起作用,並且需要很長時間來處理這段代碼。其實,我真的不知道如何指定RowID到HTTPPost。

任何人都可以幫助我嗎? 在此先感謝

回答

0

我不知道關於Android的一面,但是從Rails的角度來看,我會期望你要發送一個HTTP GET到Rails應用程序爲你的資源URL(如:http://10.10.3.87:3000/comments/1234發表評論ID爲1234 ),確保您將接受標頭設置爲偏好XML響應(您需要爲您的評論的顯示操作定義一個XML視圖才能使其工作)。

這應該會給你一個可以解碼並顯示在Android應用程序中的XML響應。

一個類似的方法應該可以爲您的評論建立索引,例如:GET到http://10.10.3.87:3000/comments(帶有定義的XML視圖)會爲您提供評論索引,因此您可以選擇一個評論來獲取正確的評論標識。

如果您的評論附加到其他「父」模型(例如,如果它們在某篇文章中作用域),這可能還不夠,因爲您還需要指定您感興趣查看評論的家長對於。

我希望有幫助!

+0

BTW您的幫助^^______________很多,使用Rails的最新版本我認爲定義動作的XML觀點,與在適當的地方.xml擴展名創建一個文件一樣簡單並用XML內容填充它。例如,如果你已經有app/views/comments/show.html。erb你會創建app/views/comments/show.xml並填充一些XML,如「「><%= @ comment.content%>」。 – 2010-01-05 17:48:35

0

感謝fd爲您的偉大答案。 :-D

我讀了你的意見,我有了新的想法。

我試圖模仿在RoR控制檯中顯示的請求。

在請求中,我們必須使用PUT方法來連接ID與數據一起,但我修改了上面僅僅只有通過chaged URL請求

http://10.10.3.87:3000/comments/update/1

這意味着我們附上我insertcode 「id」=>「1」通過使用「action」=>「更新」

這段代碼將調用POST方法,而不是放方法,但它絕對工作!

THANKS

相關問題