2016-05-04 25 views
0

部分看起來像一個數據庫值:按鈕改變鋼軌組show.html.erb的

<% if [email protected]? %> 
<div class="panel panel-default"> 
    <div class="panel-heading"> <h4>Pending Approvals for Group</h4></div> 
    <table class="table", style="border-collapse: separate; border-spacing: 5px 1px;"> 
     <thead> 
     <tr> 
      <th>User Email</th> 
      <th>Accept/Reject</th> 
     </tr> 
     </thead> 
    <% @pending.each do |individual| %> 
     <tbody> 
     <tr> 
      <td><%= individual.user.email %></td> 
      <td>Accept/Reject (BUTTONS HERE)</td> 
     </tr> 
     </tbody> 
    <% end %> 
    </table> 
    </div> 
</div> 
    <% end %> 

取而代之的是接​​受/拒絕,我需要有兩個按鈕,在數據庫列成員的變化值。接受將把「成員」的值和拒絕將把「拒絕」。但是,此更改位於GroupUser而非Group,它是組和用戶的聯合表。

換句話說,接受按鈕本質上會做<% individual.update(membership: "member")%>和拒絕會做<% individual.update(membership: "denied")%>

該按鈕會變成類似Approved或Denied的內容。我嘗試了各種選擇,但他們都沒有工作。我不確定是否/如何用javascript或jQuery來實現。

這是我嘗試創建「加入組」請求功能的一部分,它允許其他用戶請求加入私人組並獲得成員資格。

+0

什麼是控制器,更新操作?你有代碼嗎? – uday

回答

0

我只需要一個鏈接(按鈕),將參數傳遞給控制器​​,該控制器將根據這些參數進行更改如下所示:

組show.html.erb

 <td><%= link_to 'Accept', {:controller => "group", 
            :action => "decision", 
            :id => individual.group_id, 
            :user_id => individual.user.id, 
            :decision => "true"}, method: 'post', class: "btn btn-sm btn-success" %> 

組控制器

def decision 
    @groupUser = GroupUser.where(group_id: params[:id], user_id: params[:user_id]) 
    if params[:decision] == "true" 
     @groupUser.update(membership: "member") 
     Homework.where(group_id: params[:id]).find_each do |hw| 
     UserHomework.create(user_id: params[:user_id], homework_id: hw.id, admin: true, status: 'No attempt') 
     end 
    else 
     @groupUser.update(membership: "denied") 
    end 
    redirect_to groupshow_path(:id => params[:id]) 
    end