2

私は2つのモデルを持っています:

SkillnamesSkills

Userを作成することができskillname、私skillskills modelは参照 " skill_id" があります。これは、実行Skillname.where(:id => @skill.skill_id)すると名前が返されることを意味します。

今、私は何かについて非常に混乱しています。PG_Searchを使用して検索を作成しましたassociated_against。これで、skill_id を使用してユーザーのスキルを検索できます (これはあまりスマートではありません)。スキルのモデルで次のようなものを作成できるかどうか疑問に思っていました。

仮想属性:

  def skillname=(skillname)
    Skill.where(:skill_id => Skillname.where(:name => skillname).first.id)
  end

更新: モデルの追加:

class Skill < ActiveRecord::Base
  include PgSearch
    attr_accessible :user_id, :skill_id
    belongs_to :user
end

class User < ActiveRecord::Base

  include PgSearch
  pg_search_scope :search, against: [:first_name, :last_name,:country],
                  :associated_against => {
                      :skills => :name,
                    }

end

class Skillname < ActiveRecord::Base
  include PgSearch
    belongs_to :user
    attr_accessible :user_id, :description, :name



end
4

0 に答える 0