email - Emailing with Mailboxer gem in Rails 4 -
i've setup site mailboxer create in-site messaging system. i'd implement email functions of mailboxer when message sent in site, user receive email notifiying them.
i've searched documentation, though there doesn't seem setting email side of things. far, i've taken mailer classess gem's app/mailer/
directory, , set them in app/mailer/
directory, within of mailboxer folder. (app/mailer/mailboxer/
). i'm not sure how create utilize of methods in these mailers.
here controllers i've setup insite messaging, working fine:
messages controller:
class messagescontroller < applicationcontroller # /message/new def new @request = request.find(params[:request]) @message = current_user.messages.new @user = @request.user end def reply @conversation ||= current_user.mailbox.conversations.find(params[:id]) end # post /message/create def create @user = user.find(params[:user]) @body = params[:body] @subject = params[:subject] current_user.send_message(@user, params[:body], params[:subject]) flash[:notice] = "message has been sent!" redirect_to :conversations end end
conversations controller:
class conversationscontroller < applicationcontroller before_filter :authenticate_user! helper_method :mailbox, :conversation def index @conversations ||= current_user.mailbox.inbox.all end def reply current_user.reply_to_conversation(conversation, *message_params(:body, :subject)) redirect_to conversation_path(conversation) end def trashbin @trash ||= current_user.mailbox.trash.all end def trash conversation.move_to_trash(current_user) redirect_to :conversations end def untrash conversation.untrash(current_user) redirect_to :back end def empty_trash current_user.mailbox.trash.each |conversation| conversation.receipts_for(current_user).update_all(:deleted => true) end redirect_to :conversations end private def mailbox @mailbox ||= current_user.mailbox end def conversation @conversation ||= mailbox.conversations.find(params[:id]) end def conversation_params(*keys) fetch_params(:conversation, *keys) end def message_params(*keys) fetch_params(:message, *keys) end def fetch_params(key, *subkeys) # debugger params[key].instance_eval # debugger case subkeys.size when 0 self when 1 self[subkeys.first] else subkeys.map { |k| self[k] } end end end end
i tried using new_message_email
message_mailer function in messages_controller's create
method, this:
def create @user = user.find(params[:user]) @body = params[:body] @subject = params[:subject] current_user.send_message(@user, params[:body], params[:subject]) new_message_mailer(@subject, @user) flash[:notice] = "message has been sent!" redirect_to :conversations end
but it's giving me error undefined method 'new_message_email' #<messagescontroller:...>
, apparently don't know i'm doing. please give me of need set up? advice appreciated.
ruby-on-rails email mailboxer
No comments:
Post a Comment