Я использую factory_girl плагин в своем приложении направляющих. Для каждой модели у меня есть соответствующий рубиновый файл, содержащий данные фабрики, например.
Factory.define :valid_thing, :class => Thing do |t|
t.name 'Some valid thing'
# t.user ???
end
У меня есть много различных типов пользователей (уже определенный на пользовательской фабрике). Если я пробую следующее хотя:
Factory.define :valid_thing, :class => Thing do |t|
t.name 'Some valid thing'
t.user Factory(:valid_user) # Fails
end
Я получаю следующую ошибку:
# No such factory: valid_user (ArgumentError)
: valid_user на самом деле допустим, хотя - я могу использовать его в своих тестах - просто не на моих фабриках. Есть ли какой-либо способ, в котором я могу использовать фабрику, определенную в другом файле здесь?
Я имел эту проблему в Safari и Chrome (Mac) и обнаружил, что .scrollTop
будет работать на $ («тело»)
, но не $ («html, тело»)
, FF и IE, однако работает в другом раунде пути. Простое обнаружение браузера устраняет проблему:
if($.browser.safari)
bodyelem = $("body")
else
bodyelem = $("html,body")
bodyelem.scrollTop(100)
Значение браузера jQuery для Chrome - Safari, поэтому для этого необходимо только выполнить обнаружение.
Надеюсь, это кому-то поможет.
-121--1218638-Я использую плагин mark.vim, чтобы визуально отметить слова. Позволяет отмечать разные слова разными цветами одновременно и перейдите к вхождениям. На мой взгляд, эта особенность очень полезна, особенно для анализа кода или для перехода к файлам регистрации.
-121--3977956-Необходимо использовать этот код:
Factory.define :valid_thing, :class => Thing do |t|
t.name 'Some valid thing'
t.user { Factory(:valid_user) }
end
Перенос вызова в {} приводит к тому, что программа Factory Girl не оценивает код внутри фигурных скобок до тех пор, пока не будет создана the:valid_thing фабрика. Это заставит его подождать the:valid_user пока фабрика не будет загружена (Ваш пример не работает, потому что она еще не загружена), это также приведет к созданию new:valid_user для each:valid_thing вместо того, чтобы иметь того же пользователя для all:valid_thing's (что, вероятно, то, что вы хотите).
Попробуйте использовать метод ассоциации, например:
Factory.define :valid_thing, :class => Thing do |t|
t.name 'Some valid thing'
t.association :valid_user
end