당신은 확실히 올바른 길을 가고 있습니다. 당신이 그것을하기 위해 필요한 것은 스킬 모델/스카 폴드가 일반 필드 외에도 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라는 중간에 테이블 이름의 복수형이 없습니다. 즉,와 같은 저장된 기술 집합을 가질 수 있음을 의미합니다.
마케팅 능력 그리고 여러 사용자에게 하나 개의 기술 기록을 연결 프로그래밍
- 수학
- 컴퓨팅
- . (가) 사이에 모델을 결합 참조 할 필요없이
@user.skills
@skill.users
:
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 선언을 가진 두 모델 모두 기본적으로 당신은 여전히 같은 것들을 사용할 수 있습니다.