Ruby on rails 在rails上创建一个站点,用户可以加入组并与组进行交互

Ruby on rails 在rails上创建一个站点,用户可以加入组并与组进行交互,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我最近开始创建一个网站,用户可以在其中加入群组,并与群组进行交互。到目前为止,我已经为用户使用了Desive,但我现在想知道如何创建用户配置文件,甚至是群组配置文件。这是我的第一个rails应用程序,我只是需要一些关于从这里开始的指导?我需要什么工具?最好的方法是什么?Rails是您唯一需要的工具。首先,您需要在应用程序中创建其他模型。从您的描述中,我看到了一个用户配置文件和一个组。Rails的generator命令将为您删除以下内容: $ rails generate model UserPr

我最近开始创建一个网站,用户可以在其中加入群组,并与群组进行交互。到目前为止,我已经为用户使用了Desive,但我现在想知道如何创建用户配置文件,甚至是群组配置文件。这是我的第一个rails应用程序,我只是需要一些关于从这里开始的指导?我需要什么工具?最好的方法是什么?

Rails是您唯一需要的工具。首先,您需要在应用程序中创建其他模型。从您的描述中,我看到了一个用户配置文件和一个组。Rails的generator命令将为您删除以下内容:

$ rails generate model UserProfile
$ rails generate model Group
$ rails generate model Membership
现在,在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
        ...
您可以使用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
或将用户放入组中:

group = Group.create(:name => "Group 1")
group.users << User.first

在节省时间时使用工具,但要学会使用他们首先依赖的工具——Rails。请查看,它们非常优秀。

Rails是您唯一需要的工具。首先,您需要在应用程序中创建其他模型。从您的描述中,我看到了一个用户配置文件和一个组。Rails的generator命令将为您删除以下内容:

$ rails generate model UserProfile
$ rails generate model Group
$ rails generate model Membership
现在,在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
        ...
您可以使用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
或将用户放入组中:

group = Group.create(:name => "Group 1")
group.users << User.first

在节省时间时使用工具,但要学会使用他们首先依赖的工具——Rails。查看,它们非常棒。

您是否正在尝试预填充用户和组表?或者,您想知道网站访问者将如何创建自己的用户帐户和组?想知道如何编写代码,以便用户可以创建配置文件,并能够将组连接在一起并编辑组。您是否正在尝试预填充“用户和组”表?或者你想知道网站访问者将如何创建他们自己的用户帐户和组?想知道如何编写代码,以便用户可以创建个人资料,并能够将组连接在一起并编辑组。+1比我快。很好的答案显示多对多使用:through.wow Sam C谢谢。我将尝试一下,看看它是如何进行的。很好的答案显示多对多使用:through.wow Sam C谢谢。我将尝试一下,看看它是如何进行的。