2013-04-30 101 views
0

在Ruby on Rails應用程序中,我希望能夠在輸入文本框中放置用戶的用戶名,按下「添加」按鈕,並使其顯示在下方他們的細節。然後,如果我想使用另一個按鈕,我可以簡單地將它們從列表中刪除。使用Javascript在Rails管理界面中添加/刪除用戶

如何連接Javascript和Rails數據庫來專門用這些按鈕來完成這樣的任務?儘管Javascript並不是我的強項,但我更加困惑於如何使用Javascript提取和修改Rails數據庫。作爲參考,我也使用MongoDB。

什麼是最好的方法來解決這個問題?

Popular::User UI Add/Remove

下面是我使用「POST」到服務器端點「管理/流行/ users.json」的jQuery和AJAX代碼,但我不知道怎麼弄的Rails使用我的Popular :: User模型在數據庫中創建一個新用戶。

$(document).ready(function() { 
    $('.add-to-popular-users-button').click(function(event){ 
     event.preventDefault(); 
     var addToPopularUsersBtn = $(this); 
     var userToBeAdded = $('input[name=popular_user]').val(); 
     var data = { 'popular_user': {'username': userToBeAdded, 'category': 'popular'} }; 
     var url = "/admin/popular/users.json"; 
     $.ajax({ 
      url: url, 
      data: data, 
      dataType: 'json', 
      type: 'POST', 
      success: function(e) { 
       alert('Great success!'); 
      } 

     }); 
    }); 
}); 

這裏是我的人氣::用戶模式:

class Popular::User 
    include Mongoid::Document 
    include Mongoid::Timestamps 

    POPULAR = 'popular' 

    field :category, default: POPULAR 
    index :user_id 

    belongs_to :user 

    validates_presence_of :user_id 
    validates_uniqueness_of :user_id 

    def self.popular 
     user_ids = self.where(:category => POPULAR).map(&:id) 

     User.where(:_id.in => user_ids) 
    end 
+0

我有UI設置,這是一個表和標準的按鈕佈局。我將用圖像編輯。我也有數據庫查詢具有特定「類別」屬性的正確用戶。 – 2013-04-30 20:05:29

回答

0

所以,我能夠通過一些測試來了解這一點。但是,基本上,您可以使用AJAX/jQuery或使用Rails固有的RESTful體系結構執行此操作,即HTTP調用如調用:delete,並將其與特定的UI按鈕關聯。

您應該認識到的一個重要思想是使用AJAX,無論您使用'POST'或'DELETE'動詞發送給正確的服務器端點的數據,還是通過適當的控制器操作都會得到。換句話說,如果我通過'POST'向'/popular/users.json'端點發送數據來創建某些內容,那麼def create方法將能夠在之後處理數據。然後,您可以將數據分配給控制器操作中的ivar,以便在與控制器操作對應的UI視圖中進行解釋和操作。

1

我不熟悉Rails框架,但你可以使用AJAX做到這一點。你可以向控制器方法發送一個ajax post請求,該方法將創建一個用戶,創建一個表格行(或者重新創建表格),然後返回表格中的html位置。

一個簡單的例子是:

$.ajax({ 
type:'post', 
data:{} //user data, 
dataType: 'json', //or any other 
url: 'page_or_method', //page or method that will return html 
success: function (data) { 
    $('div#userTable').html(data); //in case data contains the table 
} 
}); 

閱讀$就法(jQuery的),或者你可以使用XMLHttpRequest,如果你不whant使用jQuery。

+0

是的,我想我需要jQuery和AJAX來完成這個任務。它實際上並不用於創建新用戶,而是添加已存在的用戶並更新屬性。我會嘗試閱讀更多內容。 – 2013-04-30 22:20:50

+0

好吧,我用一些jQuery設置了AJAX代碼。我會用代碼更新原始帖子。我現在的問題是,我不知道如何創建熱門::用戶,因爲它不工作,並且當我檢查rails控制檯時沒有顯示在我的數據庫中。 – 2013-05-07 20:47:06

相關問題