Nano Hash - криптовалюты, майнинг, программирование

Rails 4 - Создайте кнопку для отправки электронной почты пользователю при нажатии

Я хотел бы создать кнопку, которая отправляет электронное письмо пользователю при нажатии - поэтому я использовал ActionMailer - http://guides.rubyonrails.org/action_mailer_basics.html#sending-emails Как описано в разделах со 2 по 2.1.4, я создал:

app/mailers/user_mailer.rb

class UserMailer < ActionMailer::Base
default from: '[email protected]'
end

def send_email(user)
  @user = user
  @url  = 'http://example.com/login'
  mail(to: @user.email, subject: 'You receive this email because you click on the btn)
 end
end

Так что здесь я не знаю, какое значение поставить внутри @url?

Затем я создал представление для своей электронной почты. Но я не знаю, что вызывать в моей пользовательской модели, чтобы сообщить ей об отправке электронной почты, когда пользователь нажимает кнопку, вот мое app/controllers/user_controller.rb< /сильный>

class UsersController < ApplicationController
  before_action :set_user, only: [:show, :edit, :update, :destroy]
  # GET /users
  # GET /users.json
  def index
    @users = User.all
    @users = User.paginate(:page => params[:page], :per_page => 50)
  end

  # GET /users/1
  # GET /users/1.json
  def show
    @user = User.find(params[:id])
  end

  # GET /users/new
  def new
    @user = User.new
  end

  # GET /users/1/edit
  def edit
  end

  # POST /users
  # POST /users.json
  def create
    @user = User.new(user_params)

    respond_to do |format|
      if @user.save
        format.html { redirect_to @user, notice: 'User was successfully created.' }
        format.json { render action: 'show', status: :created, location: @user }
      else
        format.html { render action: 'new' }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

  # PATCH/PUT /users/1
  # PATCH/PUT /users/1.json
  def update
    respond_to do |format|
      if @user.update(user_params)
        format.html { redirect_to @user, notice: 'User was successfully updated.' }
        format.json { head :no_content }
      else
        format.html { render action: 'edit' }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /users/1
  # DELETE /users/1.json


  private
    # Use callbacks to share common setup or constraints between actions.
    def set_user
      @user = User.find(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def user_params
      params[:user]
    end


   def self.find_for_facebook_oauth(auth)
  where(auth.slice(:provider, :uid)).first_or_create do |user|
    user.provider = auth.provider
    user.uid = auth.uid
    user.email = auth.info.email
    user.password = Devise.friendly_token[0,20]
    user.name = auth.info.name   # assuming the user model has a name
    user.image = auth.info.image # assuming the user model has an image
  end
end


end

Теперь, на мой взгляд, я хотел бы, чтобы пользователь получал электронное письмо, когда он нажимал на эту кнопку -

<button class="btn btn-default" type="button">Get my reward</button>

Ответы:


1

Из модели User вы бы назвали UserMailer.send_email(self). Вы можете поместить это в метод и вызвать его с помощью обратного вызова after_save, чтобы электронное письмо отправлялось всякий раз, когда User обновляет свой профиль.

10.04.2014
  • Привет, Cwitty, спасибо, что нашли время, чтобы помочь мне, но я не уверен, что получу его! Я не хочу, чтобы электронное письмо было отправлено, когда пользователь обновляет свой профиль, я просто хочу, чтобы электронное письмо было отправлено, когда пользователь нажимает эту случайную кнопку? Есть ли способ сделать это с помощью actionmailer? 11.04.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..


    © 2024 nano-hash.ru, Nano Hash - криптовалюты, майнинг, программирование