Как заставить Rails загрузить все модели?

для парней, отправляющихся сюда, чтобы найти решение, вот оно, надеюсь, что это вам поможет.

protected Integer getFirefoxPid(FirefoxBinary binary){
    try {
        final Field fieldCmdProcess = FirefoxBinary.class.getDeclaredField("process");
        fieldCmdProcess.setAccessible(true);
        final Object ObjCmdProcess = fieldCmdProcess.get(binary);

        final Field fieldInnerProcess = ObjCmdProcess.getClass().getDeclaredField("process");
        fieldInnerProcess.setAccessible(true);
        final Object objInnerProcess = fieldInnerProcess.get(ObjCmdProcess);

        final Field fieldWatchDog = objInnerProcess.getClass().getDeclaredField("executeWatchdog");
        fieldWatchDog.setAccessible(true);
        final Object objWatchDog = fieldWatchDog.get(objInnerProcess);

        final Field fieldReelProcess = objWatchDog.getClass().getDeclaredField("process");
        fieldReelProcess.setAccessible(true);
        final Process process = (Process) fieldReelProcess.get(objWatchDog);

        final Integer pid;

        if (Platform.getCurrent().is(WINDOWS)) {
            final Field f = process.getClass().getDeclaredField("handle");
            f.setAccessible(true);
            long hndl = f.getLong(process);

            final Kernel32 kernel = Kernel32.INSTANCE;
            final WinNT.HANDLE handle = new WinNT.HANDLE();
            handle.setPointer(Pointer.createConstant(hndl));
            pid = kernel.GetProcessId(handle);

        } else {
            final Field f = process.getClass().getDeclaredField("pid");
            f.setAccessible(true);
            pid = (Integer) f.get(process);
        }
        logger.info("firefox process id : " + pid + " on plateform : " + Platform.getCurrent());
        return pid;
    } catch (Exception e) {
        e.printStackTrace();
        logger.error("Cannot get firefox process id, exception is : {}", e);
    }
    return null;
}
13
задан scotchi 14 July 2010 в 12:12
поделиться

1 ответ

rails 2:

Dir[Pathname(RAILS_ROOT) + 'app/models/**/*.rb'].each do |path|
  require path
end

rails 3:

Dir[Rails.root + 'app/models/**/*.rb'].each do |path|
  require path
end

другой способ:

(ActiveRecord::Base.connection.tables - %w[schema_migrations]).each do |table|
  table.classify.constantize rescue nil
end
15
ответ дан 1 December 2019 в 06:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: