Я использую динамический attr_accessible
согласно этой статье:
http://asciicasts.com/episodes / 237-dynamic-attr-available
Работает нормально. Но я не нашел элегантного способа заставить его работать с вложенными атрибутами. Вот упрощенный код:
class Company < ActiveRecord::Base
has_many :employees
accepts_nested_attributes_for :employees
end
class Employee < ActiveRecord::Base
belongs_to :company
attr_protected :salary
attr_accessor :accessible
def mass_assignment_authorizer
if accessible == :all
ActiveModel::MassAssignmentSecurity::BlackList.new
else
super + (accessible || [])
end
end
end
Допустим, у меня есть интерфейс администратора с формой RESTful для компании. В этой форме У меня есть поля для employee_attributes
, включая пустые поля для создания новых сотрудников. Я не могу найти способ позвонить Employee # available =
в этом контексте. Просматривая исходный код ActiveRecord, кажется, что это невозможно: в самой удаленной части очень глубокого стека вызовов вложенные ассоциации просто приводят к вызову Employee.new
с атрибутами.
I Подумал о создании специального атрибута, который можно было бы передать через массовое назначение. Если бы значение атрибута было правильным кодом, экземпляр Employee установил бы @accessible
на : all
. Но я не думаю, что есть способ гарантировать, что этот атрибут будет установлен перед защищенными атрибутами.
t.onload = ...
t.src = 'http: // myurl'; Но время от времени хотелось бы отменить ...
Я загружаю (большие) изображения динамически для рисования на холсте html5, примерно так:
var t = new Image();
t.onload = ...
t.src = 'http://myurl';
Но время от времени мне хотелось бы полностью отменить запрос изображения .
Единственный способ, который я придумал, - это установить src
на ''
. т.е.
t.src = ''
Это работает во многих браузерах, но кажется, что только Firefox фактически отменяет HTTP-запрос изображения.
Я тестировал это с помощью Fiddler2 , отключив кеширование и включив «эмуляцию скорости модема». Затем запускаем скрипт для проверки отмены запроса изображения. (Мне бы хотелось услышать другие идеи о том, как это проверить)
Я знаю, что есть способы отменить все запросы ( как в этом вопросе ), но я ' хочу отменить только один.
Есть идеи, как это сделать (особенно в мобильных браузерах)?