запись не найдена

Я следую REST API с руководством по yaws из 'Создание веб-приложений с Erlang' книгой.

Я получаю следующую ошибку при запуске $ yaws :

file:path_eval([".","/Users/<uername>"],".erlang"): error on line 3: 3: evaluation failed with reason error:{undefined_record,airport} and stacktrace [{erl_eval,exprs,2,[]}]

.erlang файл:

application:start(mnesia).
mnesia:create_table(airport,[{attributes, record_info(fields, airport)}, {index, [country]}]).

rest.erl можно найти здесь.

Как определить запись? Я безуспешно пытался добавить rd(airport, {code, city, country, name})..


person btype    schedule 13.10.2013    source источник


Ответы (1)


Запись «аэропорт» определена в модуле «остальное», и все функции в «остальном» знают о записи «аэропорт». Но когда вы запускаете свое приложение, erlang выполняет файл .erlang, который не имеет ничего общего с остальной частью модуля. Итак, erlang просто понятия не имеет, что такое рекордный аэропорт и где его найти.

Я считаю, что самый простой обходной путь - это определить какую-то функцию (например, «init») в остатке модуля, эта функция должна содержать все, что у вас есть сейчас, в файле .erlang, экспортировать его, а в файле .erlang просто вызвать rest:init ().

person Odobenus Rosmarus    schedule 13.10.2013