你绝对是在正确的轨道上。你需要做的是设置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
而不必引用的之间的连接模式。