sql - Ruby on Rails : joining two tables on something other than the standard foreign key

标签 sql ruby-on-rails activerecord

我有一个 Rails 查询,例如:

     @user = User.find_by_username(params[:search], :include => [:user_similars])    

模型:user(has_many:user_similars)、user_similar(belongs_to:user)

user_similars mysql 表有一个“user_id”字段作为外键,但我不希望 :include 加入到此实例中。我想加入另一个名为“user_id_similar”的字段

是否有参数可以更改 :include 的行为方式,以便它可以加入另一个字段?

或者我应该使用 :join 和不同的选项吗?

或者编辑模型方法声明?

谢谢!

最佳答案

谢谢托比!在用户模型用户中我添加了:

has_many :user_similars, :foreign_key => "user_id_similar"

这解决了它。

关于sql - Ruby on Rails : joining two tables on something other than the standard foreign key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2125762/

相关文章:

sql - Oracle SQL 查询 - 使用 MAX() 函数时加入

ruby-on-rails - rails 中的渴望加载和延迟加载

mysql - 在现有数据库上使用 Ruby on Rails - 简单的控制台测试会生成错误?

ruby-on-rails - activerecord 查找所有不包含在数组中的内容

ruby-on-rails - 包含与加入

sql - 如何从 PL/pgSQL 函数返回行构造函数?

sql - 从 View 中选择所有字段的所有平均值而不指定字段名称

全部匹配或全不匹配的 SQL

ruby-on-rails - 500 内部服务器错误与 Rails 生产

ruby-on-rails - 如何在 Ruby on Rails 中编写帮助程序来捕获 Haml block ?