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 知道模型成员是什么(也就是说,如果您正确创建了对象关联)。
所以我目前有两个模型设置,一个学生模型和一个用户(设计)模型。两者都使用多态(成员)关联。这是我目前拥有的:
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 知道模型成员是什么(也就是说,如果您正确创建了对象关联)。