【发布时间】:2018-04-04 10:30:18
【问题描述】:
有一些类似的问题是这样的:
#<User:0x00007fa0353b2518>的未定义方法“downcase_email”
(对不起,我不知道怎么形容……) 错误:
NoMethodError in UsersController#create
用于#的未定义方法`downcase_email' 提取的源代码(在第 23 行附近): 26 @user = User.new(user_params) 如果@user.save @user.send_activation_email flash[:info] = "请检查您的电子邮件以激活您的帐户。"
当我进入注册页面时,首先我想创建一个新帐户。 然而,它失败了。并且发生了错误。
好的...这里是user.rb
class User < ApplicationRecord
attr_accessor :remember_token, :activation_token, :reset_token
before_save :downcase_email
before_create :create_activation_digest
class << self
def send_activation_email
UserMailer.account_activation(self).deliver_now
end
private
def downcase_email
self.email=email.downcase
end
def create_activation_digest
self.activation_token=User.new_token
self.activation_digest=User.digest(activation_token)
end
end
end
这是用户控制器
def create
@user = User.new(user_params)
if @user.save
@user.send_activation_email
flash[:info] = "Please check your email to activate your account."
redirect_to root_url
else
render 'new'
end
end
并且错误似乎针对@user.save。 请...帮帮我
【问题讨论】:
-
你忘了告诉我们错误是什么。
-
另外,请花费一些精力并正确格式化代码(缩进两个空格,空行上没有奇怪的字符)。正如现在发布的那样,它不是有效的红宝石。
-
我不知道如何显示错误。
-
什么意思,把它加到问题里,而不是cmets。
-
class << self在那里做什么?
标签: ruby-on-rails ruby-on-rails-4