我正在尝试使用一个函数来确保我需要的表已经创建,如果没有创建它。这是示例:
ensure_table_exists(Table, MnesiaTables, Nodes) ->
case lists:member(Table, MnesiaTables) of
true ->
throw({error, db_might_have_already_been_created});
false ->
mnesia:create_table(Table, [{disc_copies, Nodes},
{attributes, record_info(fields, Table)}]),
ok
end.
问题是编译时出现错误:illegal record info
. 可能必须在编译时解析record_info,或者记录信息的第二个参数实际上应该是可以从源代码中检索的记录?