向has_and_belongs_to_many添加确认

时间:2013-11-18 10:57:39

标签: ruby-on-rails ruby-on-rails-4 has-and-belongs-to-many

我有2个型号;群组和用户。它们通过has_and_belongs_to_many相关。

到目前为止,这种方法完美无缺;但是:我想在故事中添加user_confirmed。一个用户添加另一个用户;因此,用户尚未确认。添加的用户可以稍后确认自己,例如将user_confirmed设置为“1”。

现在;我很确定这是最好的方法。我不知道如何创建这种方法。我在哪里添加user_confirmed列?如何在我的应用程序中处理和更改它?

这是我的schema.rb的相关部分:

  create_table "groups_users", id: false, force: true do |t|
    t.integer "group_id"
    t.integer "user_id"
  end

  add_index "groups_users", ["group_id"], name: "index_groups_users_on_group_id"
  add_index "groups_users", ["user_id"], name: "index_groups_users_on_user_id"

  create_table "groups", force: true do |t|
    t.string   "name"
    t.integer  "clocktype"
    t.string   "background"
    t.datetime "created_at"
    t.datetime "updated_at"
  end


  create_table "users", force: true do |t|
    t.string   "first_name"
    t.string   "last_name"
    t.string   "password"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.string   "email",                  default: "", null: false
    t.string   "encrypted_password",     default: "", null: false
    t.string   "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.integer  "sign_in_count",          default: 0
    t.datetime "current_sign_in_at"
    t.datetime "last_sign_in_at"
    t.string   "current_sign_in_ip"
    t.string   "last_sign_in_ip"
    t.string   "avatar_file_name"
    t.string   "avatar_content_type"
    t.integer  "avatar_file_size"
    t.datetime "avatar_updated_at"
  end

请注意,我不想确认用户注册,而是确认用户和群组之间的关系

1 个答案:

答案 0 :(得分:1)

您必须更改groups_users表。这是处理UserGroup之间关系的模型,因此如果您希望能够确认用户和组之间的链接,那么您真的应该更改此表。

confirmed:boolean添加groups_users字段,然后通过模型处理此值以实现预期的行为。

EG。每个用户都有一个user.groups_users数组,其中包含他/她的所有分组关系。其中每一个都将表达confirmed状态,并可根据他/她的需要进行更改。