通过的has_many删除记录:通过
问题描述:
我的模型架构:通过的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]])
或clear
或destroy
我得到这个错误:
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'
答
使用以下
Activity.delete_all(["company_id=? AND user_id=?", params[:id], current_user.id])
+0
非常感谢。它正在工作...... :) – Zeck
'delete_all'并不期望参数。您正试图删除某个特定过滤条件的记录。 在这里阅读文档 - http://rubydoc.info/gems/activerecord/3.2.6/ActiveRecord/Associations/CollectionAssociation:delete_all – saihgala