Пожалуйста, извините за простоту и длину этого, но у меня есть небольшое тестовое приложение, в котором есть таблица пользователей с атрибутами имени, электронной почты и зарплаты. Я создал почтовик, который будет рассылать отчет об этих данных конкретному пользователю по моему усмотрению, другими словами, когда я нажимаю кнопку. Моя кнопка создается с помощью link_to и вызывает действие в моем основном user_controller, которое затем вызывает действие почтовой программы. (Надеюсь, это только что имело смысл). Это выглядит следующим образом и работает так, как я надеялся; Я просто хочу узнать, правильный ли это способ сделать что-то вроде этого:
В моем user_controller (созданный генератором скаффолдов):
def sendemail
@user = User.find(params[:id])
UserMailer.welcome_email(@user).deliver
redirect_to user_path(@user)
flash[:notice] = 'Email has been sent!'
end
В файле user_mailer.rb:
def welcome_email(user)
@user = user
@url = "http://example.com/login"
mail(:to => user.email,
:subject => "Welcome to My Awesome Site")
end
На странице пользователя show.html.erb электронное письмо отправляется следующим образом:
<%= link_to "Send Email", sendemail_user_path(@user) %>
В моем файле route.rb, чтобы все выполнялось правильно (что и происходит):
resources :users do
member do
get 'sendemail'
end
Итак, сказав все это, он работает так, как должен. Я нажимаю на страницу пользователя show.html.erb, где у меня будут данные и диаграммы, которые я хочу в конечном итоге отобразить, и по своему усмотрению я могу отправить этому пользователю электронное письмо с этими данными или тем, что я поместил в файл mailer.html.erb. Когда он отправляется, он мигает сообщением, которое я указал в контроллере, и оставляет меня на этой странице, как я и указал; так что это работает. Я просто хочу знать, это правильный и самый рубиновый/рельсовый способ делать что-то?