From 124ea1cb064181695120a7421028518c08592bea Mon Sep 17 00:00:00 2001 From: i544c Date: Wed, 18 Oct 2017 21:22:06 +0900 Subject: [PATCH] =?UTF-8?q?=E9=AB=98=E9=BD=A2=E8=80=85=E3=81=8C=E9=A3=9F?= =?UTF-8?q?=E4=BA=8B=E3=82=92=E6=92=AE=E5=BD=B1=E3=81=97=E3=81=9F=E3=82=89?= =?UTF-8?q?=E9=96=B2=E8=A6=A7=E8=80=85=E3=81=AB=E3=83=A1=E3=83=BC=E3=83=AB?= =?UTF-8?q?=E3=81=8C=E3=81=84=E3=81=8F=E3=82=88=E3=81=86=E3=81=AB=E3=81=97?= =?UTF-8?q?=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Procfile | 1 + app/controllers/meals_controller.rb | 3 +++ app/mailers/user_mailer.rb | 8 ++++++++ app/views/user_mailer/notify_new_meal.html.erb | 5 +++++ config/routes.rb | 2 +- config/sidekiq.yml | 6 ++++++ spec/jobs/guess_food_job_spec.rb | 2 +- spec/mailers/previews/user_mailer_preview.rb | 3 +++ spec/mailers/user_mailer_spec.rb | 5 +++++ 9 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 app/mailers/user_mailer.rb create mode 100644 app/views/user_mailer/notify_new_meal.html.erb create mode 100644 config/sidekiq.yml create mode 100644 spec/mailers/previews/user_mailer_preview.rb create mode 100644 spec/mailers/user_mailer_spec.rb 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