Обновил Rails до 6, получая ошибку заблокированного хоста - PullRequest
0 голосов
/ 21 декабря 2018

Мне понадобилась новая функция в ActiveStorage для resize_to_fill, поэтому я обновился до Ruby 2.5.1 и Rails 6.

ruby '2.5.1'

gem "rails", github: "rails/rails"

Когда я остановился, затем запустил свой сервер (Cloud 9), я получил Railsошибка:

Заблокированный хост: xxxxxxx-xxxxxxx.c9users.io Чтобы разрешить запросы к xxxxxxx-xxxxxxx.c9users.io, добавьте следующую конфигурацию:

Rails.application.config.hosts <<"xxxxxxx-xxxxxxx.c9users.io" </p>

Я попытался перезапустить новые окна, но от этого ничего не избавилось.Я никогда не видел эту ошибку раньше.Я предполагаю, что новая версия Rails что-то делает?

Ответы [ 4 ]

0 голосов
/ 17 июля 2019

Заблокированный хост - это новая функция Rails 6. Вы можете добавить этот шаблон в свой config/environments/development.rb, чтобы не беспокоиться об этом в случае динамических URL

config.hosts << /[a-z0-9]+\.c9users\.io/

Также для пользователей ngrok, простозаменить выше c9users на ngrok

Источник: https://github.com/MikeRogers0/puma-ngrok-tunnel

0 голосов
/ 16 мая 2019

В Rails 6 Action Pack представлен ActionDispatch :: HostAuthorization и по умолчанию разрешено только [IPAddr.new («0.0.0.0/0»), IPAddr.new («:: / 0»), «localhost»]

Вы можете добавить массивы RegExp, Proc, IPAddr и String или одну строку в файле config / application.rb следующим образом:

class Application < Rails::Application
  config.hosts << "xxxxxxx-xxxxxxx.c9users.io"
  ...
end

From "https://drivy.engineering/rails-6-unnoticed-features":

В Rails 6 добавлено новое промежуточное ПО под названием ActionDispatch :: HostAuthorization, позволяющее вам внести в белый список некоторые хосты для вашего приложения и предотвращающее атаки заголовка хоста . Вы можете легко настроить его с помощью String, IPAddr, Proc и RegExp (полезно при работе с подстановочными доменами).

0 голосов
/ 21 мая 2019

Если вы хотите отключить эту функцию в своей среде разработки, вы можете установить

config.hosts = nil в config/environments/development.rb.

0 голосов
/ 19 января 2019

Как я уже говорил в первоначальном вопросе, использование Active Storage и правильное изменение размера изображений было задачей, которая, по-видимому, вообще не работала с Rails 5.x.После некоторого времени и тонны исследований на imagemagick.org я заставил его работать именно так, как мне было нужно, и теперь я могу сказать, что я использую Active Storage на Rails 5.2 со всем, от файлов до изображений.В этом случае, что касается изображений, я добавил этот код для их отображения.

<%= image_tag attachment.variant(combine_options: {auto_orient: true, thumbnail: '200x200^', gravity: 'center', extent: '200x200' }) %>

Если интересно,

auto-orient заботится о тех сумасшедших боковых фотографиях, с которыми вы иногда сталкиваетесь.

gravity и extent заботятся об обрезке.

Как только изображение загружено в первый раз, оно будет доступно оттуда.Первый раз - загрузка, это может занять дополнительную секунду или две, в зависимости от размера.

...