あなたは間違いなく正しい軌道に乗っています。あなたがそれをするために必要なのは、通常のフィールドに加えて、整数型の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>
私は推測しているが、それらを表示するためには比較的簡単です:あなたのようなことを行うことができ、コード中のSOそこに属性名がありますが、あなたはその考えを得ます。
しかし
完全に正直に言うと、私は実際に多くの多くの方法論にこれを攻撃します。スキルとユーザーの2つのモデルがある場合。その間にSkillsUserという名前のテーブルがあります(テーブル名の終わりの複数形が欠けています)。これは、のような保存されたスキルのセットを持つことができることを意味します。
マーケティングのスキル そして、複数のユーザーに1つのスキルレコードを関連付けるプログラミング
- 数学
- コンピュー
- 。インクルードが間に結合モデルを参照することなく、
@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
2つのにhas_manyの宣言を持つ両モデルは、基本的には、あなたはまだのようなものを使用することができます。