Heroku / devise - отсутствует хост для ссылки на! Пожалуйста, предоставьте: параметр хоста или установите default_url_options [: хост]

ледней версии Devise нет: подтверждаемый включен по умолчанию. Я уже добавил соответствующие столбцы в модель User, но не могу найти никаких примеров кода того, как включить: подтверждаемый.

Где я могу найти хороший пример или какой код мне нужен, чтобы включить его?

Ответы на вопрос(6)

елать одно последнее добавление в файл config / environment / development.rb, чтобы исправить страницу с ошибкой, которая появлялась после регистрации нового пользователя:

config.action_mailer.default_url_options = {: host => 'localhost'}

Подробнее об этом решении:Heroku / devise - отсутствует хост для ссылки на! Пожалуйста, предоставьте: параметр хоста или установите default_url_options [: хост]

тверждаемый» позже вместо запуска:

rails generate devise:views

как упомянул Петр, беги

rails generate devise:views confirmable

производить только те виды, которые необходимы для подтверждения. Вы увидите вывод так:

rails generate devise:views confirmable
    invoke  Devise::Generators::SharedViewsGenerator
    create    app/views/confirmable/mailer
    create    app/views/confirmable/mailer/confirmation_instructions.html.erb
    create    app/views/confirmable/mailer/reset_password_instructions.html.erb
    create    app/views/confirmable/mailer/unlock_instructions.html.erb
    create    app/views/confirmable/shared
    create    app/views/confirmable/shared/_links.erb
    invoke  form_for
    create    app/views/confirmable/confirmations
    create    app/views/confirmable/confirmations/new.html.erb
    create    app/views/confirmable/passwords
    create    app/views/confirmable/passwords/edit.html.erb
    create    app/views/confirmable/passwords/new.html.erb
    create    app/views/confirmable/registrations
    create    app/views/confirmable/registrations/edit.html.erb
    create    app/views/confirmable/registrations/new.html.erb
    create    app/views/confirmable/sessions
    create    app/views/confirmable/sessions/new.html.erb
    create    app/views/confirmable/unlocks
    create    app/views/confirmable/unlocks/new.html.erb 

После этого вы сможете получить доступ к этим файлам прямо в своем проекте, чтобы стилизовать их как ваше приложение. Вы также сможете изменить сообщения в электронных письмах, которые Devise рассылает через сгенерированные почтовые сообщения.

Наконец, не забудьте добавить config.action_mailer.delivery_method и config.action_mailer.smtp_settings в ваш файл app / config / environment / {environment_name} .rb. Вот как выглядит мой файл production.rb:

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address              => "smtp.gmail.com",
    :port                 => 587,
    :domain               => '[redacted]',
    :user_name            => '[redacted]',
    :password             => '[redacted]',
    :authentication       => 'plain',
    :enable_starttls_auto => true  }
 Skodik.o10 янв. 2016 г., 12:01
Привет, что такое правильная настройка для: домена? это домен моего приложения heroku или?
 jackyalcine23 июл. 2012 г., 23:03
Э-э, это немного не так. Все созданные здесь виды не помогут. Вам действительно нужно:create app/views/confirmable/confirmations create app/views/confirmable/confirmations/new.html.erb create app/views/confirmable/mailer/confirmation_instructions.html.erb
 Leahcim28 янв. 2012 г., 02:41
не нужно делать миграцию, как предлагает Тило?

nfig / initializers / mail.rb, например:

ActionMailer::Base.smtp_settings = {
    :address              => "smtp.gmail.com",
    :port                 => 587,
    :domain               => '[redacted]',
    :user_name            => '[redacted]',
    :password             => '[redacted]',
    :authentication       => 'plain',
    :enable_starttls_auto => true  }

-) Если вы написали что-то похожее:

    change_table(:users) do |t|
      t.confirmable
    end
    add_index :users, :confirmation_token,   :unique => true

и, как вы сказали, небольшое изменение в модели (передача дополнительно =>: подтверждается для разработки), например, так:

    devise :database_authenticatable, :registerable, :confirmable

Теперь вы можете создать несколько просмотров (если вы не сделали)

    rails generate devise:views

Вы можете перейти к app / views / devise / translations / new.html.erb и проверить, как это выглядит, или изменить его. Кроме того, вы можете проверить приложение / views / devise / подтверждений / shared / _links.erb => есть строка:

    <%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>

Это условие проверяет, включено ли подтверждаемое, так что ... технически, если все прошло нормально, оно должно работать OOTB. После создания новой учетной записи - в журнале - вы должны увидеть строки, куда отправляется письмо с подтверждением с соответствующей ссылкой. Это вызывает:

     Rendered devise/mailer/confirmation_instructions.html.erb

так что у вас есть следующее место, где вы можете настроить его немного

Как настроить стратегию подтверждения? Пожалуйста, задайте точный вопрос, чего вы хотите достичь. Вы можете проверить разработку пути драгоценного камня. В /lib/devise/models/confirmable.rb могут быть полезны некоторые комментарии.

С уважением

 tibbon18 апр. 2012 г., 02:20
Следует отметить, что стиль миграции в настоящее время устарел согласно версии V2.github.com/plataformatec/devise/wiki/...
 riship8902 февр. 2012 г., 07:19
+1 за подробности. Большое спасибо.

разработать вики-страницу, На ваш вопрос есть полный ответ.

вам просто нужно добавить его в вашу модель, например:

class User
  # ...
  devise :confirmable , ....
  # ...
end

после этого вам нужно будет создать и запустить миграцию, которая добавит необходимые столбцы в вашу модель:

# rails g migration add_confirmable_to_devise
class AddConfirmableToDevise < ActiveRecord::Migration
  def self.up
    add_column :users, :confirmation_token, :string
    add_column :users, :confirmed_at,       :datetime
    add_column :users, :confirmation_sent_at , :datetime
    add_column :users, :unconfirmed_email, :string

    add_index  :users, :confirmation_token, :unique => true
  end
  def self.down
    remove_index  :users, :confirmation_token

    remove_column :users, :unconfirmed_email
    remove_column :users, :confirmation_sent_at
    remove_column :users, :confirmed_at
    remove_column :users, :confirmation_token
  end
end

видеть:Добавление подтверждающего модуля на существующий сайт с помощью Devise

Я бы рекомендовал проверить исходный код, чтобы увидеть, как работает Confirmable:

https://github.com/plataformatec/devise/blob/master/lib/devise/models/confirmable.rb

Вы также можете проверить RailsCast на Devise:

http://railscasts.com/episodes/209-introducing-devise

Далее было бы лучше искать примеры приложений на GitHub

 Kyle Carlson26 мая 2013 г., 21:14
Спасибо за это! Помог мне включить его в моем приложении примерно за 2 минуты. Один совет: если вы включите его после того, как уже зарегистрируете пользователей, подтверждение, вероятно, не будет работать для них (это не для меня). Я воссоздал пользователя, подтвердил аккаунт, и все заработало отлично.
 Alex Popov30 сент. 2013 г., 13:19
 Tilo26 сент. 2012 г., 03:42
это недавнее изменение в Devise?
 Calciphus25 сент. 2012 г., 03:06
Вам также необходимо добавить строку: add_column: users,: unsfirmed_email,: string
 jackyalcine23 июл. 2012 г., 22:56
Это должно быть помечено как ответ, а также добавление немного от "stackoverflow.com/a/7577878/602588«(ответ ниже).

Ваш ответ на вопрос