Прошу прощения за простоту и продолжительность этого, но у меня есть небольшое тестовое приложение, которое имеет таблицу пользователей с атрибутами name, email и заработной платы.Я создал почтовую программу, которая будет отправлять отчет об этих данных конкретному пользователю по моему усмотрению, другими словами, когда я нажимаю кнопку.Моя кнопка создается с помощью link_to и вызывает действие в моем главном users_controller, который затем вызывает действие почтовой программы.(Надеюсь, это имело смысл).Это выглядит следующим образом и работает так, как я надеялся;Я просто хочу знать, если это правильный способ сделать что-то вроде этого:
В моем users_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.rbfile:
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) %>
В моем файле rout.rb, чтобы все выполнялось правильно(что он делает):
resources :users do
member do
get 'sendemail'
end
Итак, сказав все это, он работает так, как и должен.Я нажимаю на страницу show.html.erb пользователя, где у меня будут данные и диаграммы, которые я хочу в конечном итоге отобразить, и по своему усмотрению я могу отправить этому пользователю электронное письмо с этими данными или любым другим, что я положил вфайл mailer.html.erb.Когда он отправляется, он мигает сообщение, которое я указал в контроллере, и оставляет меня на этой странице, как я указал;так что работает.Я просто хочу знать, это правильный и самый рубиновый / грубый способ делать вещи?