2014-12-13 51 views
0

我是新来的铁杆,仍然有关联思维,请在我的尝试项目我想做一个竞选系统,人们会承诺投票,但不知道如何处理这个协会,以取回用户推荐。 应用程序逻辑 用户只能承诺一次,并且在承诺过程中他必须选择也是用户的推荐人。我如何调用用户对象并要求所有人都是推荐人? 型号:广告系列模型的最佳关联是什么?

class User < ActiveRecord::Base 
    has_one :pledge 

    has_secure_password 

    VALID = /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i 

    validates :email, format: { with: VALID , on: :create } 
    validates_confirmation_of :password 
    validates_presence_of :password, :on => :create 
    validates_presence_of [:email, :first_name, :last_name, :phone_number, :gender ] 
    validates_uniqueness_of :email 




    def signing_counter 
    increment! :sign_in_count 
    end 


end 

class Pledge < ActiveRecord::Base 
    belongs_to :user 
    validates_acceptance_of :agreed 
    validates_presence_of :commitment, :user_id 
end 

在此先感谢...

回答

0
class Refs < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :referal, :class_name => 'User' 
end 

class User < ActiveRecord::Base 
    has_many :refs 
    has_many :referals, :through => :refs, :source => :referal 
    has_many :refers, :through => :refs, :source => :user 
end 
0

生成用户模型:

rails g migration user name:string refer_id:integer 

单个用户可以指一个用户被称为多用户 /签约通过只有一个用户。

#user.rb 
class User < ActiveRecord::Base 
    has_many :refers, class_name: 'User', foreign_key: 'refer_id' 
    belongs_to :referred_by, class_name: 'User', foreign_key: 'refer_id' 
end 

查询:

#gives the list of users to whom this first User refers. 
User.first.refers 
#gives the user who has referred the first User. 
User.first.referred_by 
+0

我跑的时候我跑这个问题:User.last.refers 用户负载(2.3ms)选择'users' * FROM'users' ORDER BY'。 users'.'id' DESC LIMIT 1 User Load(1.6ms)SELECT'users'。* FROM'users' WHERE'users'.'refer_id' = 7 Mysql2 :: Error:Unknown column'users.refer_id'in 'where子句':SELECT'users'。* FROM'users' WHERE'users'.'refer_id' = 7 ActiveRecord :: StatementInvalid:Mysql2 :: Error:'where子句'中的未知列'users.refer_id':SELECT '用户'*从'使用rs' WHERE'users'.'refer_id' = 7 – 2014-12-15 14:11:15

+0

也许你正在将现有的代码与我的混合起来。在全新的示例中尝试我的代码。这将工作:) – Ajay 2014-12-19 10:05:04

相关问题