Records don't play nice with other languages.  I have a similar situation that I haven't tackled yet with my mnesia store, but I solved it with my ets store by doing something like:<div><br></div><div>{objtype, objid, ObjPropList, JSON}</div>


<div><br></div><div>You wouldn't have to keep a copy of the JSON around, but I do because ets is my last value cache for a web server so I might as well save the serialization step.  I imagine in mnesia it could be similar, or you could do something more generic</div>


<div><br></div><div>-record(mdoc, {objid, objtype, obj=[], json}).  % or something</div><div><br></div><div>Your record doesn't represent your object at all, it's just something that mnesia can deal with.  The real object is just a proplist, which is how JSON usually deserializes into Erlang.  </div>


<div><br></div><div>-Kenny</div><div><br><div class="gmail_quote">On Sat, Jul 9, 2011 at 8:28 AM, Tristan Sloughter <span dir="ltr"><<a href="mailto:tristan.sloughter@gmail.com" target="_blank">tristan.sloughter@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>I will have a number of modules that define a single record and functions for using that record as a model stored in a database for a webapp.</div>


<div><br></div><div>There are these nice macros for converting a record to json and json to a record that will basically always look like:</div>
<div><br></div><div>to_json(Record) -></div><div>    ?record_to_json(?MODULE, Record).</div><div><br></div><div>to_record(JSON) -></div><div>    ?json_to_record(?MODULE, JSON).</div><div><br></div><div>But at times they'll need to be overridden for a specific module/record.</div>



<div><br></div><div>My problem is I'd like to not have to copy/paste these into every module (and they'll be more base functions like these) that is a model. extends would be best since that allows overriding but from the base module I can't reference the module that is inheriting the base module as a macro, so I can't use the json_to_record macro since I can't pass in a macro of the record atom name.</div>



<div><br></div><div>A parse transform won't work either since I don't think I can add a call to a macro like I need.</div><div><br></div><div>Does anyone have any suggestions? Or should I just not use records for this? Records are nice since I'm using mnesia and found those record_to json_to macros!</div>



<div><br></div><div>Thanks,</div><div>Tristan</div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>