类错误的未定义方法

时间:2015-07-06 11:45:29

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

在我的邀请函控制器中,我调用了模型中的方法:

if abc.nil?
 generate_username
end

该方法包含在邀请模型文件中:

def generate_username
  self.username = rand(10000000..99999999).to_s
  while Invitation.where( "lower(username) = ?", username.downcase ).first
    self.username = rand(10000000..99999999).to_s
  end
end

在我的种子文件中,我有一行:

10.times do |n|
  ...
  user = User.first
  username = Invitation.generate_username
  ...
  user.active_relationships.create!( ...,
                                     username: username,
                                     ...)
end

播种后,我会看到username =行的错误。有谁知道为什么会这样,我能做些什么呢?

NoMethodError: undefined method `generate_username' for #<Class:0x00000009a2ab80>

1 个答案:

答案 0 :(得分:1)

你有一个实例方法,但是你试图在一个类上调用它。正确使用该方法。

10.times do |n|
  ...
  user.generate_username
  ...
  user.active_relationships.create!( ...,
                                     username: user.username,
                                     ...)
end