Rails:访客帐户和注册

时间:2015-11-12 20:18:09

标签: ruby-on-rails methods model

我有一个像

一样的用户模型
class User < ActiveRecord::Base
  attr_accessor :remember_token
  has_secure_password if not_guest?
  geocoded_by :location
  after_validation :geocode

在同一模型中,我定义了方法

def not_guest?
  guest == false
end

但是像这样我收到错误:undefined method not_guest? for #<Class:0x0000000598cb28>

对我而言,它与错误的呼叫(即行has_secure_password if not_guest?)在同一模型中明确定义。我的方法出了什么问题?

1 个答案:

答案 0 :(得分:0)

在模型的顶部,您可以:

has_secure_password validations: true, unless: :new_guest?


def self.new_guest
 new { |u| u.guest = true }
end

您还可以查看STI和多态关联以创建两种类型的用户(即STI的models / member.rb和models / guest.rb)。