AdilA
@AdilA
Нравится кодить, изучаю go c echo

Как правильно отослать письмо с динамическими данными в rails?

Есть табличка Post
Post.rb
has_many :responces
has_many :users, through: :responces
end

Есть табличка Responce
class Responce < ActiveRecord::Base
	belongs_to :user
	belongs_to :post
end

Нужно чтобы при добавлении записи в Responce уходило письмо с данными из Responce юзеру Post
в Responce контроллере сделал
def create
		@post = Post.find(params[:post_id])
		@responce = @post.responces.build(responce_params)
		@responce.user = current_user
		if @responce.save
			NotificationMailer.new_responce(@post.user).deliver
      		flash[:success] = "Привет"
      		redirect_to post_path @post
  		else
    		render 'new'
  		end
	end

в теле письма указываю
<%= @post.responce.price %> @post.responce.user.name

То есть хочу юзеру который создал Post отослать имя юзера и цену юзера который создал Responce но что то у меня плохо получается, и никак не могу подружиться со связями OR!
Помогите пожалуйста, юзаю rails 4 ruby 2
Спасибо!
  • Вопрос задан
  • 2569 просмотров
Решения вопроса 1
estum
@estum
Responce — это на каком языке? :)

В NotificationMailer:
def new_responce(responce)
  @responce = responce
  @responce_user = @responce.user
  mail to: @responce.post.user.email #, subject: "Subject",  ...
end


В теле письма:
<%= @responce.price %> @responce_user.name

В контроллере отправка письма:
NotificationMailer.new_responce(@responce).deliver

Это все без оптимизации запросов к БД.
А вообще это же азы, кури больше манов, особенно про логику моделей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы