Хорошо, в моем приложении RoR у меня есть система кинотеатра, в которой у пользователей есть предпочтения, в том числе сохранение их любимого актера. Что я пытаюсь сделать, так это сделать так, чтобы при добавлении нового фильма, если пользователи сохранили любого из актеров фильма как своего любимого, они получили электронное письмо с уведомлением о фильме.
На данный момент я могу сделать так, чтобы с помощью оператора where при добавлении фильма ПЕРВЫЙ пользователь в массиве получал электронное письмо, film_controller:
def create
@film = Film.new(film_params)
if @film.save
if not @film.cast1.blank?
user1 = Perference.where(actor: @film.cast1).first.user
if not user1.blank?
actor = @film.cast1
FavouriteActor.favourite_actor(user1, actor).deliver
end
end
if not @film.cast2.blank?
user2 = Perference.where(actor: @film.cast2).first.user
if not user2.blank?
actor = @film.cast2
FavouriteActor.favourite_actor(user2, actor).deliver
end
end
if not @film.cast3.blank?
user3 = Perference.where(actor: @film.cast3).first.user
if not user3.blank?
actor = @film.cast3
FavouriteActor.favourite_actor(user3, actor).deliver
end
end
redirect_to @film
else
render 'new'
end
end
Затем это отправляется почтовой программе favourite_actor.rb
:
class FavouriteActor < ApplicationMailer
def favourite_actor(user, actor)
@user = user
@actor = actor
@url = 'http://localhost:3000/films'
mail(to: @user.email, subject: 'Your favourite actor stars in a new film')
end
end
Который затем отправляет электронное письмо favourite_actor.html.erb
Но что я могу сделать, чтобы заменить эти строки, такие как: user1 = Perference.where(actor: @film.cast1).first.user
чтобы все пользователи, у которых этот актер является их любимым, отправлялись по электронной почте?