0

我的模型架构:通过的has_many删除记录:通过

用户

has_many :activities 
has_many :companies through: :activities 

公司

has_many :activities 
has_many :users, through: :activities 

活动

belongs_to :user 
belongs_to :company 

问题,当我尝试运行current_user.activities.delete_all(["company_id=?", params[:id]])cleardestroy我得到这个错误:

ArgumentError: wrong number of arguments (1 for 0) 
    from /home/rom/.rvm/gems/[email protected]/gems/activerecord-3.2.8/lib/active_record/associations/collection_association.rb:156:in `delete_all' 
    from /home/rom/.rvm/gems/[email protected]/gems/activerecord-3.2.8/lib/active_record/associations/collection_proxy.rb:46:in `delete_all' 
+0

'delete_all'并不期望参数。您正试图删除某个特定过滤条件的记录。 在这里阅读文档 - http://rubydoc.info/gems/activerecord/3.2.6/ActiveRecord/Associations/CollectionAssociation:delete_all – saihgala

回答

1

使用以下

Activity.delete_all(["company_id=? AND user_id=?", params[:id], current_user.id]) 
+0

非常感谢。它正在工作...... :) – Zeck