2

我的模型架构:

轮询

has_many :questions
has_many :responses :through => :questions

问题

belongs_to :poll
has_many :responses

回复

belongs_to :question

当我尝试运行时出现问题,或者@poll.responses.delete_all我收到此错误:cleardestroy_all

ActiveRecord::HasManyThroughCantAssociateThroughHasOneOrManyReflection: Cannot modify association 'Poll#responses' because the source reflection class 'Response' is associated to 'Question' via :has_many.

更新:仍然不确定为什么会这样,但这里有一个解决方法: @poll.responses.each(&:destroy)

4

2 回答 2

3

尝试

Poll.first.responses.each(&:destroy)

仅当连接模型上的关联为 时,删除才有效:belongs_to

于 2012-08-10T00:29:29.543 回答
0

你需要使用destroy_all,它对关系最有效。

@poll.responses.destroy_all
于 2012-08-10T00:20:47.377 回答