Для вопросов Rails, вместо того, чтобы делиться синтаксисом вашей таблицы создания базы данных, вы должны делиться миграциями вашей базы данных (просто откройте schema.rb и скопируйте / вставьте).
Похоже, у вас просто есть пользователи, некоторые из которых имеют права администратора. Самый простой способ сделать это - просто иметь столбец t.boolean :admin, :default => false
в вашей пользовательской модели.
Хорошим преимуществом этого подхода является то, что Active Record предоставит вам метод User#admin?
, который очень хорошо читается в условных выражениях и т. П. (Т.е. <%= render 'admin_menu' if @user.admin? %>
).
Это также обходит ваши опасения по поводу дополнительных запросов, чтобы получить имена пользователей после получения перечисленных администраторов.
# app/models/file.rb
class File < ActiveRecord::Base
belongs_to :user
end
@files = File.where(:something => true).include(:user)
@files.map(&:name) #=> ['Bob', 'Cindy', ...]