你絕對是在正確的軌道上。你需要做的是設置Skill模型/腳手架,除了通常的字段外,還有一個類型爲integer的user_id。這是存儲技能所屬用戶的外鍵。然後,您可以設置技能模型以與用戶建立belongs_to關聯。因此,在代碼中,你可以做這樣的事情:
@skill.user
@user.skills
從本質上講,一旦用戶連接到他們的技能,這是比較容易證明他們/user/1
例如
<p><%= @user.name %> has the following skills</p>
<ul>
<% @user.skills.each do |skill| %>
<li><%= skill.title %></li>
<% end %>
</ul>
我只是猜測在那裏的屬性名稱,但你明白了。
然而
要完全誠實的,我真的從許多攻擊這個很多方法。你有兩個獨立的模型,技能和用戶。然後你有一個叫SkillsUser(缺少表名的結尾複數)。這意味着您可以擁有一組保存的技能,例如。
然後是一個技能記錄到多個用戶關聯。
class Skill < ActiveRecord::Base
has_many :skills_users
has_many :users, :through => :skill_users
end
class User < ActiveRecord::Base
has_many :skills_users
has_many :skills, :through => :skill_users
end
class SkillUser < ActiveRecord::Base
belongs_to :skill
belongs_to :user
end
有兩個的has_many聲明這兩款機型基本上可以讓你仍然使用了諸如:
@user.skills
@skill.users
而不必引用的之間的連接模式。