Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 链接模型关联的自定义方法或关联_Ruby On Rails_Ruby_Model Associations - Fatal编程技术网

Ruby on rails 链接模型关联的自定义方法或关联

Ruby on rails 链接模型关联的自定义方法或关联,ruby-on-rails,ruby,model-associations,Ruby On Rails,Ruby,Model Associations,我有三个模型:用户、产品和交易 以下是协会: app/models/transaction.rb 事务具有“current”布尔值,当事务当前正在发生时为true,否则为nil。 属于:搜索者,类别名称:用户,外键:搜索者id 属于:产品 app/models/user.rb 拥有多个:自有产品,类别名称:产品, 外键:所有者id, 依赖::销毁 有很多:交易,外键:搜索者id, 依赖::销毁 有很多:请求的产品,通过::事务,源::产品 有多个:活动的\u事务,->{where current

我有三个模型:用户、产品和交易

以下是协会:

app/models/transaction.rb

事务具有“current”布尔值,当事务当前正在发生时为true,否则为nil。 属于:搜索者,类别名称:用户,外键:搜索者id 属于:产品 app/models/user.rb

拥有多个:自有产品,类别名称:产品, 外键:所有者id, 依赖::销毁 有很多:交易,外键:搜索者id, 依赖::销毁 有很多:请求的产品,通过::事务,源::产品 有多个:活动的\u事务,->{where current:true}, 类名称:“事务”, 外键:搜索者id 有很多:借用的产品,通过::活动的交易,来源::产品 app/models/product.rb

属于:所有者,类别名称:用户, 外键:所有者id 有很多:事务,依赖::销毁 有很多:搜索者,通过::交易, 来源:导引头 has_one:active_transaction,->{where current:true}, 类名称:“事务” 有一个:借款人,通过::活动交易, 来源:导引头 我想创建一个方法,允许我执行以下操作:

user.owned_products.available返回用户拥有的、当前事务为:true的所有产品。 user.owned_products.lended返回与current.true没有交易的用户拥有的所有产品 这可能吗?如果没有,我会创建一个关联链接,如user.available\u products和user.lended\u products,但我不知道如何创建,因为我必须使用两个模型中的条件才能在第三个模型中创建关联,如下所示:

app/models/user.rb

有很多可用的产品,>{借款人:无}, 类别名称:产品, 外键:所有者id 我得到这个错误信息:

ActionView::模板::错误: SQLite3::SQLException:没有这样的列:products.借入者:从products.owner\u id=?和产品。借款人为空 有什么提示吗?

创建一个作用域

scope :available, where(:current => true).joins(:transactions)
现在你可以说

user.owned_products.available
这没有经过测试。但这将给你一个如何继续下去的想法


是范围的参考。

谢谢。很抱歉,它不起作用:-我已经阅读了有关scopes的rails指南,但是示例很少,我不太理解。否则,您认为我应该删除一些我的has_许多关联,以便用作用域替换它们吗?