我有两个模型User
和Dtype
。
在users
表中,我有两个名为dtype_id
和dtype_second
的列,其中包含Dtype的ID。现在我需要通过关联获得两个列值。
使用@user.dtype.name
会给我第一列的值(dtype_id)。
现在,我还需要第二列的值,即dtype_second
。
为此,我正在尝试这个:
In User Model:
belongs_to :dtype
In Dtype Model:
has_many :users
has_many :dtype_seconds, :foreign_key => 'dtype_second', :class_name => "User"
On view:
<%= @user.dtype_seconds.name %>
问题在于我没有得到任何价值或错误。
答案 0 :(得分:2)
首先。命名。您应该将dtype_second
字段重命名为dtype_second_id
下一步。协会。您需要在两个模型中适当地描述两种关联
class User
belongs_to :dtype
belongs_to :dtype_second, :class_name => 'Dtype'
end
class Dtype
has_many :users
has_many :second_users, :class_name => 'User', :foreign_key => 'dtype_second_id'
end
答案 1 :(得分:1)
您正在向dtype
添加多个,但您尝试在用户上调用该方法。因此,您必须在用户上定义dtype_second
关联:
class User < ActiveRecord::Base
belongs_to :dtype
belongs_to :dtype_alternative, :foreign_key => 'dtype_second', :class_name => "Dtype"
...
end
<%= @user.dtype_alternative.name %>