Yed*_*die 1 ruby ruby-on-rails devise
我最近开始创建一个网站,用户可以加入群组并能够与群组互动.到目前为止,我已经为用户使用了设计,但我现在想知道我用什么来创建用户配置文件甚至组配置文件.这是我的第一个rails应用程序,我只需要一些关于从哪里开始的指导?我需要什么工具?这样做的最佳方式是什么?
Rails是您需要的唯一工具.首先,您需要在应用程序中创建其他模型.根据您的描述,我看到UserProfile和Group.Rails的生成器命令将为您存根:
$ rails generate model UserProfile
$ rails generate model Group
$ rails generate model Membership
Run Code Online (Sandbox Code Playgroud)
现在,您将在app/models目录中拥有user_profile.rb和group.rb,以及db/migrate/create .rb中的迁移.接下来,您需要通过编辑迁移脚本告诉rails在数据库中创建哪些字段.您可以在此处随意添加任何内容,但您至少需要外键来关联您的数据.
def CreateUserProfiles < ActiveRecord::Migration
create_table :user_profiles do |t|
t.belongs_to :user
...
Run Code Online (Sandbox Code Playgroud)
和
def CreateMemberships < ActiveRecord::Migration
create_table :memberships
t.belongs_to :user
t.belongs_to :group
...
Run Code Online (Sandbox Code Playgroud)
现在,您可以执行迁移以为您创建数据库表:
$ rake db:migrate
Run Code Online (Sandbox Code Playgroud)
您可以使用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
Run Code Online (Sandbox Code Playgroud)
现在,您拥有了为用户提供配置文件所需的所有工具:
UserProfile.create(:user => User.first, :attr => "value", ...)
Run Code Online (Sandbox Code Playgroud)
或者将用户放入组中:
group = Group.create(:name => "Group 1")
group.users << User.first
Run Code Online (Sandbox Code Playgroud)
在节省时间时使用工具,但学会使用他们首先依赖的工具-Rails.查看Rails指南,它们非常棒.