【发布时间】:2014-04-23 13:28:32
【问题描述】:
当我使用自定义外键执行关系时,rails 不会将 id 传递给查询,而是传递 [[nil, nil]]:
jruby-1.7.11 :081 > u.user_privileges
UserPrivilege Load (61.0ms)
SELECT "A_USERPRIVILEGES".* FROM "A_USERPRIVILEGES"
WHERE "A_USERPRIVILEGES"."ID_A_USERS" = :a1 [[nil, nil]] =>
#<ActiveRecord::Associations::CollectionProxy []>
我有 rails 4.1、jruby-1.7.11、oracle_enhanced 适配器和 oracle 11g db
这是我的代码:
class User < ActiveRecord::Base
self.table_name = 'A_USERS'
self.primary_key = 'ID'
has_many :user_privileges, foreign_key: 'ID_A_USERS',
primary_key: 'ID' # when i remove primary key here then nothing changing
end
class UserPrivilege < ActiveRecord::Base
self.table_name = 'A_USERPRIVILEGES'
self.primary_key = 'ID'
belongs_to :user, foreign_key: 'ID_A_USERS',
primary_key: 'ID' # when i remove primary key here then nothing changing
alias_attribute :user_id, :id_a_users # does not work too
end
表格信息:
A_USERS:
ID NUMBER(38,0)
A_USERPRIVILEGES:
ID NUMBER(38,0)
ID_A_USERS NUMBER(38,0)
更新
我只是用 mysql 数据库创建了测试项目,其代码和架构与上面写的完全相同,它正在工作......
oracle 的问题仍未解决。
【问题讨论】:
标签: ruby-on-rails ruby oracle activerecord associations