破坏行为通过关联在哪里进行?

时间:2011-04-01 08:56:52

标签: ruby-on-rails ruby ruby-on-rails-3

我想要一个删除独立资源中的关联的destroy动作。这个动作在哪里?在独立资源的控制器中?

1 个答案:

答案 0 :(得分:0)

class User < AR:Base
  has_many :friendships, :dependent => :destroy
  has_many :girls, :through => :friendship
end

创建新控制器:

rails g controller frienships

的routes.rb

resource :friendship, :only => [:destroy]

friendships_controller

def destroy
  @friendsip = Friendship.find params[:id]
  @friendship.destroy
  redirect_to :back
end

在节目中:

<%= link_to "Delete friendship", @your_user_friendship, :method => :delete %>

<强> BUT

在我看来,你应该在你的EDIT表格(用户表格和女孩)中实现它,你可以在那里检查和取消选中Girsl for User,反之亦然。所以它会自动添加和破坏友谊协会。

我通常这样做。