2017-04-11 93 views
0

我目前正在嘗試使用組和奶牛之間的關聯,並且我想爲此關聯構建一個按鈕。爲了解釋這種情況,我們進入「展示組」,它會顯示每個奶牛的按鈕。如果用戶點擊一個按鈕,它將在治療組和母牛之間建立關聯。按鈕添加/刪除到收集欄

其實,有沒有錯誤,但協會不工作

我的代碼:

Group_controller:

before_action :set_group  

def add_asso 
@cow = Cow.find_by(params[:id]) 
@group.cows << @cow 
redirect_to :back 
end 

顯示組:

<% @ranch = @group.ranch %> 
<% @cows = @ranch.cows %> 

<% @cows.each do |c| %> 
    <%- if @group.cows.exists?(c.id) %> 
    <%= link_to add_asso_group_path(@group.id, c.id), method: :post do %> 
    <div class="btn btn-success"> 
     <%= c.name%> 
    </div> 
    <% end %> 
    <% else %> 
    <div class="btn btn-info"> 
     <%= c.name%> 
    </div> 
    <% end %> 
<% end %> 
<%= link_to 'Back', groups_path %> 

最後我的路線:

resources :groups do 
    member do 
     post :add_asso 
     post :rem_asso 
    end 
    end 

因此,如果您對如何運行此關聯有任何建議,您將成爲我的英雄!

+1

您可以編輯您的問題更加詳細一些。它以什麼方式不起作用?發生了什麼,你期望發生什麼? – Metropolis

回答

0

我建議你:

查看=

添加關聯=

<%= link_to add_asso_group_path(@group, idz: c.id), method: :post do %> 
<div class="btn btn-default"> 
    <%= c.name%> 
</div> 
<% end %> 

取消關聯=

<%= link_to rem_asso_group_path(@group, idz: c.id), method: :post do %> 
    <div class="btn btn-success"> 
     <%= c.name%> 
    </div> 
    <% end %> 
    <% end %> 

控制器=

- 添加=

def add_asso 
    @cow = Cow.find(params[:idz]) 
    @group.cows << @cow 
    redirect_to :back 
    end 

刪除=

def rem_asso 
    @cow = Cow.find(params[:idz]) 
    @group.cows.delete(@cow) 
    redirect_to :back 
    end 

這應該工作,讓我知道兄弟