Вы говорите, у вас есть has_many :skills
.но затем вы продолжаете говорить, что у вас есть skill_id
на столе persons
, что несовместимо.Что вы хотите?
Хотите ли вы, чтобы у человека был какой-то конкретный навык, и в этом случае то, что у вас сейчас есть, хорошо для базы данных, а для модели - нет.Модель Person
в этом случае должна иметь belongs_to :skill
, а модель Skill
должна иметь has_many :people
Другой возможный путь вокруг, я могу думать, что вы хотели бы, чтобычеловек has_and_belongs_to_many :skills
и навык has_and_belongs_to_many :people
.Это позволит многим людям овладеть многими навыками, и я действительно думаю, что вы этого хотите.Затем в представлении вы можете сделать это:
<% people.each do |p| %>
<h2><%= p.name %>'s skills</h2>
<% p.skills.each do |skill| %>
<%= skill.name %>
<% end %>
<% end %>
Так что же это?Ваш вопрос говорит об одном, а затем о противоположном, что сильно сбивает с толку.Я надеюсь, что этот ответ поможет вам сделать правильный выбор.