【问题标题】:Devise Rails & Admin_Mailer设计 Rails & Admin_Mailer
【发布时间】:2014-12-07 07:09:10
【问题描述】:

我正在使用我的 Rails 4 应用程序。

我的user.rb 模型中有以下内容:

def send_admin_mail
  AdminMailer.new_user_waiting_for_approval(self).deliver
end

def send_user_welcome_mail
  AdminMailer.new_user_waiting_for_access(user).deliver
end

第一种方法是在新用户注册时向我发送一封电子邮件。目的是使用第二种方法向新用户发送欢迎电子邮件。第一种方法有效。第二个问题是“no_method_error”(我的回调控制器中未定义的方法电子邮件)。

我的回调控制器有以下内容:

def linkedin
  @user = User.find_for_linkedin_oauth(request.env["omniauth.auth"])
  if @user.persisted?
    @user.send_admin_mail
    @user.send_user_welcome_mail

    redirect_to root_path, :event => :authentication
    # sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated
    # set_flash_message(:notice, :success, :kind => "LinkedIn") if is_navigational_format?
  else
    session["devise.linkedin_data"] = request.env["omniauth.auth"]
    redirect_to root_path
  end
end

我的 admin_mailer 有:

def new_user_waiting_for_approval(user)
  @user = user
  mail(to: "myemailaddress@gmail.com", from: "myemailaddress@gmail.com", 
  subject: "Registration Request #{user.first_name} #{user.last_name} <#{user.email}>")
end

def new_user_waiting_for_access(user)
  @user = user
  mail(to: user.email, from: "myemailaddress@gmail.com", subject: "Welcome to Co #{user.first_name}")
end

我想知道是否需要将 user 替换为 current_user 以使用 devise 方法,或者是否需要在第二种方法中 user.email 周围的 {} 和/或 "" 进行一些变化?我尝试了几种不同的变体和组合,但都没有成功。

感谢您的帮助。

【问题讨论】:

  • 你能发布你得到的确切错误跟踪吗

标签: ruby-on-rails devise


【解决方案1】:
def send_user_welcome_mail
  AdminMailer.new_user_waiting_for_access(user).deliver
end

应该替换为

def send_user_welcome_mail
  AdminMailer.new_user_waiting_for_access(self).deliver
end

用户 -> 自己

【讨论】:

  • 您好,感谢您的建议。当我尝试它时,我收到了这个错误:ActionView::Template::Error (undefined local variable or method `user' for #:0x007f60578287f0>)。日志将我引至回调控制器中的这一行:@user.send_user_welcome_mail
  • 你为什么在你的视图中使用用户?它应该是@user。
猜你喜欢
  • 1970-01-01
  • 2011-06-01
  • 2016-03-06
  • 2013-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-25
相关资源
最近更新 更多