Rails - 如何从视图中的多态关联输出属性

Rails - How to output attributes from polymorphic associations in view

所以我目前有两个模型设置,一个学生模型和一个用户(设计)模型。两者都使用多态(成员)关联。这是我目前拥有的:

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

我的问题是:如何在我的视图中输出 Student 的 'code' 属性?我意识到我可以做类似 <%= current_user.member_id %> 的事情并将其与 Student 模型相匹配,但据我所知,这两个模型(User 和 Student)只是通过 member? (即没有什么可以与之匹配)。

任何suggestions/pointers关于如何从这里开始?非常感谢。

如果我理解正确,你应该输入:

<%= current_user.member.code %>

因为在您的数据库中您有 member_id AND member_type,rails 知道模型成员是什么(也就是说,如果您正确创建了对象关联)。