2013-03-28 45 views
0

我有用戶和組。ActiveAdmin/Formtastic有很多通過字段

Users has_many :groups, :through => Membership
Groups has_many :users, :through => Membership

好爲止。成員資格現在有一個布爾字段manager

用戶可以成爲團隊的管理者,團隊可以擁有多個經理。在網站的任何地方,這工作正常,並沒有造成任何問題。現在他們需要以某種方式進行管理。我正在使用Active Admin(Formtastic)並且提供了:as => :check_boxes的字段。

用戶喜歡複選框。他們希望我在切換用戶是否在組中的那個旁邊放置第二個複選框,以確定用戶是否是該組的管理員。

我該如何去做這件事?我嘗試過使用f.has_many系統,但爲每個現有成員資格創建一個條目,不提供刪除成員資格的方法,也不是用戶想要的。我想要顯示每個用戶,顯示一個複選框以確定該配對是否存在成員身份,並在其旁邊顯示另一個複選框以獲取經理字段的值。

回答

1

你想要的是在點擊複選框時進行AJAX調用。假設你正在使用的CoffeeScript您javacript文件和jQuery,給一般的準則(未測試),在您的複選框使用屬性,就像這樣:

<checkbox data-group=<%=group.id%> data-user=<%=user.id%> data-something="true"> 

然後,創建一個JavaScript函數,採用此數據 - 東西,把一個功能點擊它調用的頁面:

$document.ready -> 
    $(["data-something]").click -> 
    user = this.attr("data-user") 
    group = this.attr("data-group") 
    $.post("/some/url", {value: this.value, user: user, group: group}) 

路由添加到該控制器,然後行動從這個網址,簡單的處理邏輯

Class SomeController 
    def url 
    user = User.find(params[:user]) 
    .... 
    end 
end 

如果您遇到更多問題,請稍後再提出一個更具體的問題。