2017-04-11 94 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 

这应该工作,让我知道兄弟