您可以采用 habtm 方法。
然后在部分用户表单中,添加字段
<div class="field">
<%= f.label "Categories" %><br />
<% for category in Category.all %>
<%= check_box_tag 'user[category_ids][]', category.id,
@user.category_ids.include?(category.id), :id => dom_id(category) %>
<%= label_tag dom_id(category), category.name, :class => "check_box_label" %>
<% end %>
</div>
其中 category.name 是您的类别模型中的字段。
这应该有效。
然后在您的用户索引视图中,
<% @users.each do |user| %>
<%= user.categories.collect(&:name).join(",") %>
<% end %>
它应该显示用户的相关类别。不要忘记在您的用户模型 attr_accessible 字段中添加 :category_ids。否则会弹出大量评估安全性