【发布时间】:2014-04-02 09:06:04
【问题描述】:
我想在我的应用程序中有一个表单,登录用户可以输入他们朋友的电子邮件地址,点击发送,它会自动向他们输入表单的电子邮件地址发送一封电子邮件。这是我到目前为止所拥有的。当我单击按钮将您带到表单时,我得到了未初始化的常量,所以我不知道还有什么不起作用。
invitations_controller.rb
class InvitationsController < ApplicationController
def new
@invitation = Invitation.new
end
def create
@invitation = Invitation.new(params[:invitation])
@invitation.invited_by = current_user.invitation_token # set the sender to the current user
if @invitation.save
Mailer.invitation(@invitation, new_user_path(:invite_token => @invitation.invited_by)).deliver #send the invite data to our mailer to deliver the email
else
flash.now[:notice] = "Something went wrong"
redirect_to root_url
end
end
end
mailer.rb
class Mailer < ActionMailer::Base
default from: "donotreply@mysite.com"
def invitation(invitation, signup_url)
subject 'Invitation'
recipients @recipient_email
from 'donotreply@mysite.com'
body :invitation => invitation, :signup_url => signup_url
invitation.update_attribute(:sent_at, Time.now)
end
end
invitation.html.erb
Mailer#invitation
You are invited to join our beta!
<%= signup_url(@invitation.invited_by) %>
new.html.erb(邀请表)
<%= simple_form_for @invitation, :url => new_invitation_path do |f| %>
<%= f.hidden_field :invitation_token, :value => @invitation.invited_by %>
<%= f.label :email %>
<%= f.email_field :email %>
<%= f.submit 'Send' %>
<% end %>
我什至无法进入邀请表单,因为我收到未初始化的常量错误。因此,据我所知,它的工作原理不止于此。请帮忙
【问题讨论】:
-
哪个常量未初始化?
-
未初始化的常量 InvitationsController::Invitation
-
你有
Invitation模特吗? -
没有。我认为我需要一个评论?我为确认电子邮件制作了一封邮件,我开始工作了。我没有那个模型。但由于某种原因,接受用户输入并发送电子邮件对我来说比在用户注册时发送自动电子邮件更困难。
-
当然你需要一张邀请表,你说
Invitation.new ....意味着你正在初始化一个邀请对象
标签: ruby-on-rails ruby email ruby-on-rails-4 actionmailer