我最近开始创建一个网站,用户可以加入群组并能够与群组互动。到目前为止,我已经为用户使用了设计,但我现在想知道我用什么来创建用户配置文件甚至组配置文件。这是我的第一个rails应用程序,我只需要一些关于从哪里开始的指导?我需要什么工具?这样做的最佳方式是什么?
答案 0 :(得分:5)
Rails是您需要的唯一工具。首先,您需要在应用程序中创建其他模型。根据您的描述,我看到UserProfile和Group。 Rails的生成器命令会将这些命令存在:
$ rails generate model UserProfile
$ rails generate model Group
$ rails generate model Membership
现在,您的app / models目录中将包含user_profile.rb和group.rb,以及db / migrate / create .rb中的迁移。接下来,您需要通过editing the migration script告诉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。查看Rails Guides,它们非常棒。