diff --git a/Procfile b/Procfile
index f35acf3..cacdbaf 100644
--- a/Procfile
+++ b/Procfile
@@ -1 +1,2 @@
web: bin/rails server -p $PORT -b 0.0.0.0
+worker: bundle exec sidekiq -C config/sidekiq.yml
diff --git a/app/controllers/meals_controller.rb b/app/controllers/meals_controller.rb
index 6e6208a..3ec8426 100644
--- a/app/controllers/meals_controller.rb
+++ b/app/controllers/meals_controller.rb
@@ -35,6 +35,9 @@ def create
respond_to do |format|
if @meal.save
+ @user.followers.each do |follower|
+ UserMailer.notify_new_meal(follower, @user, @meal).deliver_later
+ end
format.html { redirect_to user_meals_path, notice: "Meal was successfully created." }
format.json { render :show, status: :created, location: @meal }
else
diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb
new file mode 100644
index 0000000..533f1f9
--- /dev/null
+++ b/app/mailers/user_mailer.rb
@@ -0,0 +1,8 @@
+class UserMailer < ApplicationMailer
+ def notify_new_meal(to_user, monitored, meal)
+ @to_user = to_user
+ @monitored = monitored
+ @meal = meal
+ mail(to: @to_user.email, subject: "#{monitored}さんが食事を撮影しました")
+ end
+end
diff --git a/app/views/user_mailer/notify_new_meal.html.erb b/app/views/user_mailer/notify_new_meal.html.erb
new file mode 100644
index 0000000..c9111b9
--- /dev/null
+++ b/app/views/user_mailer/notify_new_meal.html.erb
@@ -0,0 +1,5 @@
+
<%= @monitored.profile.nickname %>さんが食事を撮影しました!
+
+<%= image_tag @meal.img %>
+
+<%= link_to "コメントする?ここをクリック!", URI.unescape(user_meal_url(user_name: @monitored.username, date: @meal.created_at.strftime("%Y/%m/%d"))) %>
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index f75558a..97d4f67 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -12,7 +12,7 @@
devise_for :users
- authenticate :user, lambda { |u| u.is_admin? } do
+ authenticate :user, ->(u) { u.is_admin? } do
mount RailsAdmin::Engine => "/admin", as: "rails_admin"
mount Sidekiq::Web => "/sidekiq"
end
diff --git a/config/sidekiq.yml b/config/sidekiq.yml
new file mode 100644
index 0000000..ddfb695
--- /dev/null
+++ b/config/sidekiq.yml
@@ -0,0 +1,6 @@
+:concurrency: 25
+:pidfile: ./tmp/pids/sidekiq.pid
+:logfile: ./log/sidekiq.log
+:queues:
+ - default
+ - mailers
diff --git a/spec/jobs/guess_food_job_spec.rb b/spec/jobs/guess_food_job_spec.rb
index 62e6681..868155a 100644
--- a/spec/jobs/guess_food_job_spec.rb
+++ b/spec/jobs/guess_food_job_spec.rb
@@ -1,4 +1,4 @@
-require 'rails_helper'
+require "rails_helper"
RSpec.describe GuessFoodJob, type: :job do
pending "add some examples to (or delete) #{__FILE__}"
diff --git a/spec/mailers/previews/user_mailer_preview.rb b/spec/mailers/previews/user_mailer_preview.rb
new file mode 100644
index 0000000..38267b0
--- /dev/null
+++ b/spec/mailers/previews/user_mailer_preview.rb
@@ -0,0 +1,3 @@
+# Preview all emails at http://localhost:3000/rails/mailers/user_mailer
+class UserMailerPreview < ActionMailer::Preview
+end
diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb
new file mode 100644
index 0000000..4a78b85
--- /dev/null
+++ b/spec/mailers/user_mailer_spec.rb
@@ -0,0 +1,5 @@
+require "rails_helper"
+
+RSpec.describe UserMailer, type: :mailer do
+ pending "add some examples to (or delete) #{__FILE__}"
+end