ruby-on-rails - 通过rails has_many删除记录:through

标签 ruby-on-rails ruby-on-rails-3 activerecord

我的模型架构:

投票

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

问题

belongs_to :poll
has_many :responses

回应

belongs_to :question

问题当我尝试运行@poll.responses.delete_allcleardestroy_all时我得到了这个错误:

ActiveRecord::HasManyThroughCantAssociateThroughHasOneOrManyReflection:无法修改关联“Poll#responses”,因为源反射类“Response”通过 :has_many 与“Question”关联。

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

最佳答案

尝试

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

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

关于ruby-on-rails - 通过rails has_many删除记录:through,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11893794/

相关文章:

ruby-on-rails - Rails3 设计未定义的方法 `confirmation_url'

ruby-on-rails - 由于 Uglifier 错误 (Uglifier::Error),Rails 不会预编译 Assets

ruby-on-rails - Rails4 : ActiveRecord. ..CollectionProxy: NoMethodError

mysql - 将 SQL 转换为 ActiveRecord 查询

ruby-on-rails - Rails 3. 如何创建自定义 PUT 操作?

ruby-on-rails - 如何自定义 Devise 的 "resend confirmation email"

ruby-on-rails - 在 Rails Controller 或普通 ruby​​ 中检查 CSS?

ruby-on-rails - Rails 3全文搜索选项( gem ,插件等)

ruby-on-rails-3 - 我的 Redis 客户端在哪里使用?

ruby-on-rails - 在 Rails 3 中使用 PostgreSQL JSON 列类型