所以我目前有两个模型设置,一个学生模型和一个用户(设计)模型。两者都使用polymorph(member)关联。这是我现在拥有的:
Student.rb
class Student < ActiveRecord::Base
has_one :user, as: :member, :inverse_of => :member
belongs_to :my_class
end
User.rb
class User < ActiveRecord::Base
belongs_to :member, polymorphic: true, :inverse_of => :user
end
schema.rb是这样的
create_table "users", force: true do |t|
t.string "email", default: "", null: false
t.string "full_name"
t.string "phone_number"
t.integer "member_id"
t.string "member_type"
t.date "dob"
end
create_table "students", force: true do |t|
t.integer "code"
#other student related attributes
end
我的问题是:如何输出&#39;代码&#39;在我看来学生的属性?我意识到我可以做<%= current_user.member_id %>
这样的事情,并将其与学生模型相匹配,但据我所知,两个模型(用户和学生)只是通过成员的比喻联系? (即没有什么可以匹配它们)。
有关如何从这里开始的任何建议/指示?非常感谢。
答案 0 :(得分:1)
如果我正确理解了这个问题,你应该把:
<%= current_user.member.code %>
因为在您的数据库中有member_id
AND member_type
,所以rails知道什么是模型成员(即,如果您正确创建了对象关联)。