【发布时间】:2023-03-21 03:29:01
【问题描述】:
我有一个用于保存所有用户的用户模型。我的应用中有两种类型的用户,导师和学生,但它们具有相同的结构。
我想做这样的事情。
has_many :requests, :foreign_key => mentor? ? 'mentor_id' : 'student_id', :class_name => 'Request'
我有导师吗?模型中的方法,但它给了我一个 method_missing 错误。我假设是因为它正在寻找dynamic_matchers.rb中的方法
这是它给出的错误
/var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active_record/dynamic_matchers.rb:55:in 'method_missing': undefined method 'mentor?' for #<Class:0x00000001b40630> (NoMethodError)
有没有办法在不为学生和导师制作单独模型的情况下解决这个问题?我觉得看到他们都使用相同的字段是不必要的。
【问题讨论】:
-
为什么要不同的 id 列?这个逻辑应该只在用户模型上,而不是在请求上。你想要的也是不可能的......:D
标签: ruby-on-rails ruby activerecord model