Rails - единственный инструмент, который вам нужен. Сначала вам нужно создать другие модели в вашем приложении. Из вашего описания я вижу UserProfile и группу. Команда генератора Rails заглушит их:
$ rails generate model UserProfile
$ rails generate model Group
$ rails generate model Membership
Теперь у вас будут user_profile.rb и group.rb в каталоге app / models, а также миграции в db / migrate / create .rb. Далее вам нужно сообщить rails, какие поля создать в базе данных, отредактировав скрипт миграции . Вы можете включить сюда все, что пожелаете, но вы по крайней мере захотите, чтобы внешние ключи связывали ваши данные.
def CreateUserProfiles < ActiveRecord::Migration
create_table :user_profiles do |t|
t.belongs_to :user
...
и
def CreateMemberships < ActiveRecord::Migration
create_table :memberships
t.belongs_to :user
t.belongs_to :group
...
Теперь вы можете выполнить ваши миграции, чтобы создать таблицы базы данных для вас:
$ rake db:migrate
И вы можете использовать методы класса ассоциации ActiveRecord для определения этих отношений в коде, чтобы Rails позаботился о SQL за вас.
app/models/membership.rb
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
app/models/user.rb
class User < ActiveRecord::Base
has_one :user_profile
has_many :memberships
has_many :groups, :through => :memberships
...
end
app/models/group.rb
class Group < ActiveRecord::Base
has_many :memberships
has_many :users, :through => :memberships
end
app/models/user_profile.rb
class UserProfile < ActiveRecord::Base
belongs_to :user
end
Теперь у вас есть все инструменты, необходимые для создания профилей пользователей:
UserProfile.create(:user => User.first, :attr => "value", ...)
Или поместить пользователя в группу:
group = Group.create(:name => "Group 1")
group.users << User.first
Используйте инструменты, когда они экономят ваше время, но учитесь использовать инструмент, от которого они все зависят в первую очередь - Rails. Проверьте Направляющие рельсов , они превосходны.