CGBitmapInfo.AlphaInfoMask не является действительной информацией растрового изображения.
Попробуйте установить CGBitmapInfo.AlphaLast или CGBitmapInfo.AlphaFirst.
Проблема решена, большое спасибо http://poocs.net/2007/11/14/special-characters-and-nested-routes (и см. http://dev.rubyonrails.org/ticket/6426 для дополнительной справки)
Мне нужно было добавить: requirements => {: website_id => regexp} для каждого вложенного маршрута, который также собирался включить доменное имя с точками в нем.
Вот мой рабочий маршрут:
map.resources :websites, :requirements => { :id => /[a-zA-Z0-9\-\.]+/ } do |websites|
websites.with_options :requirements => { :website_id => /[a-zA-Z0-9\-\.]+/ } do |websites_requirements|
websites_requirements.resources :dns_records
end
end
<%= link_to 'New DNS Record', new_website_dns_record_path(@website) %>
# Produces the URL
/websites/asd.com/dns_records/new
Вызов
websites.with_options
просто соответствует DRY, так что: требования не нужно указывать для всех вложенных маршрутов для веб-сайтов. Так что у меня также может быть
websites_requirements.resources :accounts
websites_requirements.resources :monthly_bandwidth_records
etc.
Это интересный вопрос. Я не думаю, что вы сможете избавиться от плохого '.: format'
, добавленного в конец, если вы выполните базовую map.resources
. Если вам нужны точки в именах, вы не соответствуете обычным стилям рельсов, и я думаю, что пользовательский маршрут может быть в порядке, если вам абсолютно НУЖНА '.'. в URL.
Однако, возможно, вам следует подумать об изменении определения to_param
. Что бы вы подумали об использовании следующего?
def to_param
domain_name.sub('.','_dot_')
end
Я думаю, что если вы используете это для управления веб-сайтами клиентов, это довольно элегантный способ создания хороших (и оптимизированных для SEO) URL-адресов, например
/websites/asd_dot_com/dns_records/new
/websites/asd_dot_com/
Некоторое время назад у меня была похожая проблема, и я пришел к аналогичному решению. Использование /.+/ в качестве требования для рассматриваемого параметра отлично сработало для меня.