ArgumentError в Messages # create для почтового ящика в Ruby on Rails - PullRequest
0 голосов
/ 28 апреля 2019

Я следовал руководству этого сайта по внедрению почтового ящика в веб-приложении Ruby on Rails .

Прямо сейчас я получаю эту ошибку:

ArgumentError in Messages#create
Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

Вот мой messages_controller.rb

    class MessagesController < ApplicationController

      def new
        @chosen_recipient = User.find_by(id: params[:to].to_i) if params[:to]
      end

      def create
        recipients = User.where(id: params['recipients'])
        conversation = current_user.send_message(recipients, params[:message] 
        [:body], params[:message][:subject]).conversation
        flash[:success] = "Message has been sent!"
        redirect_to conversation_path(conversation)
      end

    end

Я не уверен, что с ним не так, поскольку я полностью следовал учебнику.

В частности, строка ошибки - это строка 9 "разговор = текущий_пользователь.send_message ......"

Полагаю, мне нужно было бы где-то определить @recipients, но в учебнике это не указано.

Я пробовал @recipients и @conversations, которые приводят только к другой ошибке, которую я не знаком с исправлением (это было только для экспериментов).

Весь код в учебнике, а также ссылки в верхней части.

Репо можно клонировать по этой ссылке (с использованием AWS Cloud9) и создать пользователей, чтобы затем попытаться отправить сообщение другому пользователю, и вы получите сообщение об ошибке при нажатии, чтобы отправить сообщение получателю.

Я пытался сделать предложения, перечисленные выше, и экспериментировал с @ing некоторыми переменными, но это не сработало.

1 Ответ

0 голосов
/ 28 апреля 2019

Вы должны указать Rails, где находится ваш почтовый сервер в каждом из файлов среды вашего приложения.Что-то вроде:

config.action_mailer.default_url_options = { :host => "www.yourhost.com" }

Кроме того, прежде чем разместить здесь вопрос, попробуйте поискать в Google сообщение об ошибке. Это был первый результат для Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

...