Active Record Destroy ArgumentError(错误的参数数量(给定1,预期为0)):

用户名

我正在尝试销毁这样的购买对象

def destroy
        @purchase=current_user.purchases.where(flooding_property_id: params[:id])
        @purchase.destroy(flooding_property_id: params[:id])
    end

我知道错误是由于我有某种关联,但我似乎无法弄清楚。我的模型如下

class FloodingProperty < ActiveRecord::Base
    has_many :purchases 
    has_many :users, through: :purchases
end

购买模式

class Purchase < ActiveRecord::Base

    belongs_to :user
    belongs_to :flooding_property
end

用户模型

class User < ActiveRecord::Base

  has_many :purchases
  has_many :carts
  has_many :flooding_properties, through: :purchases
end

数据库架构:

create_table "flooding_properties", force: :cascade do |t|
    t.string    "address"
    t.string    "zipcode"
    t.geography "latlon",       limit: {:srid=>4326, :type=>"point", :geographic=>true}
    t.datetime  "last_updated"
    t.datetime  "created_at",                                                            null: false
    t.datetime  "updated_at",                                                            null: false
  end

  add_index "flooding_properties", ["latlon"], name: "index_flooding_properties_on_latlon", using: :gist
  add_index "flooding_properties", ["zipcode"], name: "index_flooding_properties_on_zipcode", using: :btree

  create_table "purchases", force: :cascade do |t|
    t.boolean  "billed",               default: false
    t.integer  "user_id"
    t.integer  "flooding_property_id"
    t.datetime "created_at",                           null: false
    t.datetime "updated_at",                           null: false
  end

  add_index "purchases", ["billed"], name: "index_purchases_on_billed", where: "(billed = false)", using: :btree
  add_index "purchases", ["flooding_property_id"], name: "index_purchases_on_flooding_property_id", using: :btree
  add_index "purchases", ["user_id"], name: "index_purchases_on_user_id", using: :btree

  create_table "users", force: :cascade do |t|
    t.datetime "created_at",                          null: false
    t.datetime "updated_at",                          null: false
    t.string   "first_name"
    t.string   "last_name"
    t.string   "email",                  default: "", null: false
    t.string   "encrypted_password",     default: "", null: false
  end
蒂姆·劳伦兹(Tim Lawrenz)

您在单个实例上调用#destroy。这不是您的关联的问题。

def destroy
  current_user
    .purchases
    .find_by(flooding_property_id: params[:id])
    .destroy
end

我使用的是.find_by而不是.where,因为.where返回多个匹配项。.find_by始终返回找到的第一个。

如果您确实想销毁所有匹配项,则可以使用.where和.destroy_all:

def destroy
  current_user
    .purchases
    .where(flooding_property_id: params[:id])
    .destroy_all
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

最小测试错误-ArgumentError:参数数量错误(给定1,预期为0)

来自分类Dev

Active Admin:错误的参数数量(0表示1)

来自分类Dev

fastlane 脚本中的参数数量错误(给定 0,预期为 1)(ArgumentError)

来自分类Dev

带有参数的Rails Active Record顺序

来自分类Dev

Rails Active Record的子项为NULL

来自分类Dev

Codeigniter Active Record语法错误

来自分类Dev

Codeigniter Active Record语法错误

来自分类Dev

Rails:.destroy的参数数目错误(0表示1)

来自分类Dev

Jekyll:参数数量错误(给定2个,预期为1个)(ArgumentError)

来自分类Dev

ArgumentError:Update_Attribute 方法的参数数量错误(给定 1,预期为 2)

来自分类Dev

Active Record包含STI

来自分类Dev

MVC与Active Record与工厂

来自分类Dev

Active Record STI 困惑

来自分类Dev

Docker运行产生错误``初始化'':错误的参数数量(给定2个,预期为1个)(ArgumentError)

来自分类Dev

运行 Rspec 和 Sinatra 时,我不断收到 ArgumentError:参数数量错误(给定 2,预期为 0)

来自分类Dev

最喜欢的操作出现错误:参数数量错误(给定1,预期为0)?

来自分类Dev

Yii使用Active Record从数据库加载系统参数

来自分类Dev

如何在Rails Active Record中为模型创建别名

来自分类Dev

.sqlite文件的Active Record set_table_name错误

来自分类Dev

Active Record 意外的 i18n 错误

来自分类Dev

Ruby on Rails:参数数量错误(给定 0,预期为 1)

来自分类Dev

Ruby:错误:当我给出正确数量的参数时,参数数量错误(给定 1,预期为 0)

来自分类Dev

Rails:参数数目错误(给定1,预期为0)

来自分类Dev

Active Record按ID查找

来自分类Dev

Rails Active Record多个关联

来自分类Dev

Codeigniter Active Record,多个条件

来自分类Dev

Json的Active Record查询数组

来自分类Dev

Rails Active Record CrossTab查询

来自分类Dev

Codeigniter Active Record,多个条件

Related 相关文章

  1. 1

    最小测试错误-ArgumentError:参数数量错误(给定1,预期为0)

  2. 2

    Active Admin:错误的参数数量(0表示1)

  3. 3

    fastlane 脚本中的参数数量错误(给定 0,预期为 1)(ArgumentError)

  4. 4

    带有参数的Rails Active Record顺序

  5. 5

    Rails Active Record的子项为NULL

  6. 6

    Codeigniter Active Record语法错误

  7. 7

    Codeigniter Active Record语法错误

  8. 8

    Rails:.destroy的参数数目错误(0表示1)

  9. 9

    Jekyll:参数数量错误(给定2个,预期为1个)(ArgumentError)

  10. 10

    ArgumentError:Update_Attribute 方法的参数数量错误(给定 1,预期为 2)

  11. 11

    Active Record包含STI

  12. 12

    MVC与Active Record与工厂

  13. 13

    Active Record STI 困惑

  14. 14

    Docker运行产生错误``初始化'':错误的参数数量(给定2个,预期为1个)(ArgumentError)

  15. 15

    运行 Rspec 和 Sinatra 时,我不断收到 ArgumentError:参数数量错误(给定 2,预期为 0)

  16. 16

    最喜欢的操作出现错误:参数数量错误(给定1,预期为0)?

  17. 17

    Yii使用Active Record从数据库加载系统参数

  18. 18

    如何在Rails Active Record中为模型创建别名

  19. 19

    .sqlite文件的Active Record set_table_name错误

  20. 20

    Active Record 意外的 i18n 错误

  21. 21

    Ruby on Rails:参数数量错误(给定 0,预期为 1)

  22. 22

    Ruby:错误:当我给出正确数量的参数时,参数数量错误(给定 1,预期为 0)

  23. 23

    Rails:参数数目错误(给定1,预期为0)

  24. 24

    Active Record按ID查找

  25. 25

    Rails Active Record多个关联

  26. 26

    Codeigniter Active Record,多个条件

  27. 27

    Json的Active Record查询数组

  28. 28

    Rails Active Record CrossTab查询

  29. 29

    Codeigniter Active Record,多个条件

热门标签

归档