构建邀请函数[Rails 4]

时间:2014-09-18 13:41:41

标签: ruby-on-rails ruby ruby-on-rails-4

我是铁轨上的红宝石新人,非常感谢任何建议&有关如何使用ruby on rails创建邀请函数的指导。从头开始构建或使用GEM的任何建议将非常感激。

  1. 我创建了一个活动平台,用户可以在其中创建活动&追随者活动组织者
  2. 我想创建一个邀请函数,用户可以邀请关注者/朋友参加活动
  3. 邀请函数允许用户仅邀请平台内的成员而非非成员
  4. 我的架构显示如下。

    i would be grateful on any given advise of how to build an invite function
    

    模式

      create_table "comments", force: true do |t|
        t.text     "content"
        t.integer  "commentable_id"
        t.string   "commentable_type"
        t.integer  "user_id"
        t.datetime "created_at"
        t.datetime "updated_at"
      end
    
      create_table "events", force: true do |t|
        t.string   "name"
        t.text     "description"
        t.date     "date"
        t.time     "time"
        t.text     "city"
        t.decimal  "price",       precision: 8, scale: 2
        t.datetime "created_at"
        t.datetime "updated_at"
        t.integer  "user_id"
      end
    
      create_table "relationships", force: true do |t|
        t.integer  "follower_id"
        t.integer  "followed_id"
        t.datetime "created_at"
        t.datetime "updated_at"
      end
    
      create_table "users", force: true do |t|
        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,  null: false
        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.datetime "created_at"
        t.datetime "updated_at"
        t.string   "firstname"
        t.string   "lastname"
        t.date     "dob"
        t.string   "gender"
        t.text     "description"
        t.string   "role"
      end
    
      create_table "votes", force: true do |t|
        t.boolean  "vote",          default: false, null: false
        t.integer  "voteable_id",                   null: false
        t.string   "voteable_type",                 null: false
        t.integer  "voter_id"
        t.string   "voter_type"
        t.datetime "created_at"
        t.datetime "updated_at"
      end 
    
    end
    

1 个答案:

答案 0 :(得分:2)

gem devise_invitable

Devise身份验证gem的一个非常有用的延伸是 devise_invitable 。它添加了可用于构建引荐系统的邀请功能,或仅添加到您的Web应用程序的常规电子邮件邀请。它增加了对 devise 的支持,以便通过电子邮件发送邀请

它的工作方式非常简单。它只是向模型添加invite!方法,您可以像调用create一样传递属性。

<强> E.g。

User.invite!(email: "new_user@example.com", name: "John Doe")

这很棒,如果您在以下位置传递该对​​象,它会自动跟踪哪个用户发送了邀请:

User.invite!({:email => "new_user@example.com"}, current_user)
# current_user will be set as invited_by

more info


RailsCast #124 Beta Invitations

你可以观看这个可以很好地解释邀请系统的rails cast。

希望这会有所帮助..