Oke, dalam aplikasi RoR saya, saya memiliki sistem bioskop di mana pengguna memiliki preferensi, termasuk menyimpan aktor favorit mereka. Apa yang saya coba lakukan adalah membuatnya sehingga ketika sebuah film baru ditambahkan, jika pengguna menyimpan salah satu aktor film sebagai favorit mereka, mereka akan mendapatkan email yang memberitahukan mereka tentang film tersebut.
Saat ini saya bisa mendapatkannya sehingga, melalui penggunaan pernyataan di mana, ketika sebuah film ditambahkan, pengguna PERTAMA dalam array akan dikirimi email, 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
Ini kemudian masuk ke favourite_actor.rb
mailer:
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
Yang kemudian mengirimkan email favourite_actor.html.erb
Tapi apa yang bisa saya lakukan untuk mengganti baris seperti ini: user1 = Perference.where(actor: @film.cast1).first.user
sehingga semua pengguna dengan aktor tersebut sebagai favorit mereka dikirimi email?