Первое, что пришло на ум решение, которое имеет большую часть смысла, состояло бы в том, чтобы выбрать букву из входной строки случайным образом и отфильтровать словарь на основе слов, которые запускаются с этого. Тогда выберите другого, фильтр на второй букве, и т.д. Кроме того, отфильтруйте слова, которые не могут быть сделаны с оставшимся текстом. Тогда, когда Вы поражаете конец слова, вставляете пространство и запускаете его с остающихся букв. Вы могли бы также ограничить слова на основе словоформы (например, у Вас не будет двух глаголов друг рядом с другом, у Вас не было бы двух статей друг рядом с другом, и т.д.).
Я использую скрепку с S3 с изображениями по умолчанию в общей папке. Работает нормально. Мой оператор default_url выглядит так:
:default_url => '/images/:attachment/missing_:style.png'
, что означает, что для моего вложения с именем avatar, настроенного со стилями small и large, я должен создать и поместить эти изображения в общедоступный каталог:
Это довольно хорошо задокументировано .
Для справки или в случае, если проблема действительно в другом месте, вот мое полное заявление скрепки:
has_attached_file :avatar,
:styles => { :small => '60x60#', :large => '300x300#' }, :default_style => :large,
:storage => :s3,
:default_url => '/images/:attachment/missing_:style.png',
:path => "users/:id/avatar/:style.:extension",
:bucket => "bucket name",
:s3_credentials => {
:access_key_id => "access key id",
:secret_access_key => "secret access key"
},
:url => ":s3_alias_url", # These two are only required when you alias S3 - e.g. want to use cdn.example.com rather than s3.amazonaws.com
:s3_host_alias => "my.aws.alias"