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

时间:2015-01-17 20:59:07

标签: ruby-on-rails ruby-on-rails-4 devise polymorphic-associations

所以我目前有两个模型设置,一个学生模型和一个用户(设计)模型。两者都使用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 %>这样的事情,并将其与学生模型相匹配,但据我所知,两个模型(用户和学生)只是通过成员的比喻联系? (即没有什么可以匹配它们)。

有关如何从这里开始的任何建议/指示?非常感谢。

1 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,你应该把:

<%= current_user.member.code %>

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