ruby-on-rails - Rails:belongs_to 忽略范围
问题描述
表结构:
Bar:
a_id
b_id
attr1
attr2
...
Foo:
id
a_id
b_id
...
楷模:
class Bar < ApplicationRecord
end
class Foo < ApplicationRecord
belongs_to :bar, lambda { |foo|
unscope(:where).where(
a_id: foo.a_id,
b_id: foo.b_id
)
}
def bar_working
Bar.find_by(
a_id: a_id,
b_id: b_id
)
end
end
调用Foo.find(1).bar
产生零。调用Foo.find(1).bar_working
产生关联的对象。为什么调用belongs_to关联时没有执行范围?
这在 has_many 关联上工作得很好,只是不能让它在 belongs_to 上工作。
我正在运行 Rails 5.2.2。
资料来源:
解决方案
推荐阅读
- c# - 监听来自编辑器脚本的键输入
- javascript - Angular IE11 文件上传取消事件
- css - 如何在没有/deep/的情况下覆盖`ng-template`构建字段的css样式?
- javascript - JavaScript中的地理位置不返回位置
- ftp - 对 ALLO 的否定响应的 lftp 处理
- java - 如何使用 Java SQL API 重命名 Azure Cosmos DB 中的容器?
- batch-file - 如何批量输入密码?
- android - Dart FFI - 从 C++ 调用 Dart 函数
- database - 如何为来自 ORM 系统(用于 PHP)的字段构建带有翻译的表单?
- r - 展开表格中的变量标签