按钮添加/删除到收集轨道

时间:2017-04-11 01:09:27

标签: ruby-on-rails associations

我目前正在尝试使用群组和奶牛之间的关联,我想为此关联构建一个按钮。为了解释这种情况,我们进入了“ show group ”,它将为每头奶牛显示一个按钮。如果用户点击按钮,它将在当前组和母牛之间建立关联。

实际上没有错误,但关联不起作用

我的代码:

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 个答案:

答案 0 :(得分: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

这应该有用,让我知道兄弟