@@ -333,6 +333,30 @@ <h2>
333333< p > The model instance just destroyed.</ p >
334334</ div > </ span >
335335
336+ </ li >
337+
338+
339+ < li class ="public ">
340+ < span class ="summary_signature ">
341+
342+ < a href ="#disassociate-instance_method " title ="#disassociate (instance method) "> #< strong > disassociate</ strong > (parent, child, association_name, association_type) ⇒ Object </ a >
343+
344+
345+
346+ </ span >
347+
348+
349+
350+
351+
352+
353+
354+
355+
356+ < span class ="summary_desc "> < div class ='inline '>
357+ < p > Remove the association without destroying objects.</ p >
358+ </ div > </ span >
359+
336360</ li >
337361
338362
@@ -1044,12 +1068,12 @@ <h3 class="signature " id="create-instance_method">
10441068 < pre class ="lines ">
10451069
10461070
1047- 263
1048- 264
1049- 265 </ pre >
1071+ 303
1072+ 304
1073+ 305 </ pre >
10501074 </ td >
10511075 < td >
1052- < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 263 </ span >
1076+ < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 303 </ span >
10531077
10541078< span class ='kw '> def</ span > < span class ='id identifier rubyid_create '> create</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_model_class '> model_class</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_create_params '> create_params</ span > < span class ='rparen '> )</ span >
10551079 < span class ='id identifier rubyid_raise '> raise</ span > < span class ='tstring '> < span class ='tstring_beg '> '</ span > < span class ='tstring_content '> you must override #create in an adapter subclass</ span > < span class ='tstring_end '> '</ span > </ span >
@@ -1162,19 +1186,171 @@ <h3 class="signature " id="destroy-instance_method">
11621186 < pre class ="lines ">
11631187
11641188
1165- 291
1166- 292
1167- 293 </ pre >
1189+ 331
1190+ 332
1191+ 333 </ pre >
11681192 </ td >
11691193 < td >
1170- < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 291 </ span >
1194+ < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 331 </ span >
11711195
11721196< span class ='kw '> def</ span > < span class ='id identifier rubyid_destroy '> destroy</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_model_class '> model_class</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_id '> id</ span > < span class ='rparen '> )</ span >
11731197 < span class ='id identifier rubyid_raise '> raise</ span > < span class ='tstring '> < span class ='tstring_beg '> '</ span > < span class ='tstring_content '> you must override #destroy in an adapter subclass</ span > < span class ='tstring_end '> '</ span > </ span >
11741198< span class ='kw '> end</ span > </ pre >
11751199 </ td >
11761200 </ tr >
11771201</ table >
1202+ </ div >
1203+
1204+ < div class ="method_details ">
1205+ < h3 class ="signature " id ="disassociate-instance_method ">
1206+
1207+ #< strong > disassociate</ strong > (parent, child, association_name, association_type) ⇒ < tt > Object</ tt >
1208+
1209+
1210+
1211+
1212+
1213+ </ h3 > < div class ="docstring ">
1214+ < div class ="discussion ">
1215+
1216+ < p > Remove the association without destroying objects</ p >
1217+
1218+ < p > This is NOT needed in the standard use case. The standard use case would
1219+ be:</ p >
1220+
1221+ < pre class ="code ruby "> < code class ="ruby "> < span class ='kw '> def</ span > < span class ='id identifier rubyid_update '> update</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_attrs '> attrs</ span > < span class ='rparen '> )</ span >
1222+ < span class ='comment '> # attrs[:the_foreign_key] is nil, so updating the record disassociates
1223+ </ span > < span class ='kw '> end</ span >
1224+ </ code > </ pre >
1225+
1226+ < p > However, sometimes you need side-effect or elsewise non-standard behavior.
1227+ Consider using < a href ="{https://github.com/mbleigh/acts-as-taggable-on " target ="_parent " title ="acts_as_taggable_on "> acts_as_taggable_on</ a > } gem:</ p >
1228+
1229+ < pre class ="code ruby "> < code class ="ruby "> < span class ='comment '> # Not actually needed, just an example
1230+ </ span > < span class ='kw '> def</ span > < span class ='id identifier rubyid_disassociate '> disassociate</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_parent '> parent</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_child '> child</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_association_name '> association_name</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_association_type '> association_type</ span > < span class ='rparen '> )</ span >
1231+ < span class ='id identifier rubyid_parent '> parent</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_tag_list '> tag_list</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_remove '> remove</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_child '> child</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_name '> name</ span > < span class ='rparen '> )</ span >
1232+ < span class ='kw '> end</ span >
1233+ </ code > </ pre >
1234+
1235+ < p > < code > association_name</ code > and < code > association_type</ code > come from
1236+ your sideload configuration:</ p >
1237+
1238+ < pre class ="code ruby "> < code class ="ruby "> < span class ='id identifier rubyid_allow_sideload '> allow_sideload</ span > < span class ='symbol '> :the_name</ span > < span class ='comma '> ,</ span > < span class ='label '> type:</ span > < span class ='id identifier rubyid_the_type '> the_type</ span > < span class ='kw '> do</ span >
1239+ < span class ='comment '> # ... code.
1240+ </ span > < span class ='kw '> end</ span >
1241+ </ code > </ pre >
1242+
1243+
1244+ </ div >
1245+ </ div >
1246+ < div class ="tags ">
1247+
1248+ < div class ="examples ">
1249+ < p class ="tag_title "> Examples:</ p >
1250+
1251+
1252+ < p class ="example_title "> < div class ='inline '>
1253+ < p > Basic accessor</ p >
1254+ </ div > </ p >
1255+
1256+ < pre class ="example code "> < code > < span class ='kw '> def</ span > < span class ='id identifier rubyid_disassociate '> disassociate</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_parent '> parent</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_child '> child</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_association_name '> association_name</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_association_type '> association_type</ span > < span class ='rparen '> )</ span >
1257+ < span class ='kw '> if</ span > < span class ='id identifier rubyid_association_type '> association_type</ span > < span class ='op '> ==</ span > < span class ='symbol '> :has_many</ span >
1258+ < span class ='id identifier rubyid_parent '> parent</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_send '> send</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_association_name '> association_name</ span > < span class ='rparen '> )</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_delete '> delete</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_child '> child</ span > < span class ='rparen '> )</ span >
1259+ < span class ='kw '> else</ span >
1260+ < span class ='id identifier rubyid_child '> child</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_send '> send</ span > < span class ='lparen '> (</ span > < span class ='symbol '> :#{</ span > < span class ='id identifier rubyid_association_name '> association_name</ span > < span class ='embexpr_end '> }</ span > < span class ='tstring_content '> =</ span > < span class ='tstring_end '> "</ span > </ span > < span class ='comma '> ,</ span > < span class ='kw '> nil</ span > < span class ='rparen '> )</ span >
1261+ < span class ='kw '> end</ span >
1262+ < span class ='kw '> end</ span > </ code > </ pre >
1263+
1264+ </ div >
1265+ < p class ="tag_title "> Parameters:</ p >
1266+ < ul class ="param ">
1267+
1268+ < li >
1269+
1270+ < span class ='name '> parent</ span >
1271+
1272+
1273+ < span class ='type '> </ span >
1274+
1275+
1276+
1277+ —
1278+ < div class ='inline '>
1279+ < p > The parent object (via the JSONAPI 'relationships' graph)</ p >
1280+ </ div >
1281+
1282+ </ li >
1283+
1284+ < li >
1285+
1286+ < span class ='name '> child</ span >
1287+
1288+
1289+ < span class ='type '> </ span >
1290+
1291+
1292+
1293+ —
1294+ < div class ='inline '>
1295+ < p > The child object (via the JSONAPI 'relationships' graph)</ p >
1296+ </ div >
1297+
1298+ </ li >
1299+
1300+ < li >
1301+
1302+ < span class ='name '> association_name</ span >
1303+
1304+
1305+ < span class ='type '> </ span >
1306+
1307+
1308+
1309+ —
1310+ < div class ='inline '>
1311+ < p > The 'relationships' key we are processing</ p >
1312+ </ div >
1313+
1314+ </ li >
1315+
1316+ < li >
1317+
1318+ < span class ='name '> association_type</ span >
1319+
1320+
1321+ < span class ='type '> </ span >
1322+
1323+
1324+
1325+ —
1326+ < div class ='inline '>
1327+ < p > The Sideload type (see Sideload#type). Usually :has_many/:belongs_to/etc</ p >
1328+ </ div >
1329+
1330+ </ li >
1331+
1332+ </ ul >
1333+
1334+
1335+ </ div > < table class ="source_code ">
1336+ < tr >
1337+ < td >
1338+ < pre class ="lines ">
1339+
1340+
1341+ 276
1342+ 277
1343+ 278</ pre >
1344+ </ td >
1345+ < td >
1346+ < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 276</ span >
1347+
1348+ < span class ='kw '> def</ span > < span class ='id identifier rubyid_disassociate '> disassociate</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_parent '> parent</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_child '> child</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_association_name '> association_name</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_association_type '> association_type</ span > < span class ='rparen '> )</ span >
1349+ < span class ='id identifier rubyid_raise '> raise</ span > < span class ='tstring '> < span class ='tstring_beg '> '</ span > < span class ='tstring_content '> you must override #disassociate in an adapter subclass</ span > < span class ='tstring_end '> '</ span > </ span >
1350+ < span class ='kw '> end</ span > </ pre >
1351+ </ td >
1352+ </ tr >
1353+ </ table >
11781354</ div >
11791355
11801356 < div class ="method_details ">
@@ -1943,12 +2119,12 @@ <h3 class="signature " id="sideloading_module-instance_method">
19432119 < pre class ="lines ">
19442120
19452121
1946- 249
1947- 250
1948- 251 </ pre >
2122+ 289
2123+ 290
2124+ 291 </ pre >
19492125 </ td >
19502126 < td >
1951- < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 249 </ span >
2127+ < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 289 </ span >
19522128
19532129< span class ='kw '> def</ span > < span class ='id identifier rubyid_sideloading_module '> sideloading_module</ span >
19542130 < span class ='const '> Module</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_new '> new</ span >
@@ -2255,12 +2431,12 @@ <h3 class="signature " id="update-instance_method">
22552431 < pre class ="lines ">
22562432
22572433
2258- 277
2259- 278
2260- 279 </ pre >
2434+ 317
2435+ 318
2436+ 319 </ pre >
22612437 </ td >
22622438 < td >
2263- < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 277 </ span >
2439+ < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 317 </ span >
22642440
22652441< span class ='kw '> def</ span > < span class ='id identifier rubyid_update '> update</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_model_class '> model_class</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_update_params '> update_params</ span > < span class ='rparen '> )</ span >
22662442 < span class ='id identifier rubyid_raise '> raise</ span > < span class ='tstring '> < span class ='tstring_beg '> '</ span > < span class ='tstring_content '> you must override #update in an adapter subclass</ span > < span class ='tstring_end '> '</ span > </ span >
@@ -2275,7 +2451,7 @@ <h3 class="signature " id="update-instance_method">
22752451</ div >
22762452
22772453 < div id ="footer ">
2278- Generated on Wed Jun 7 10:15:10 2017 by
2454+ Generated on Thu Sep 28 17:28:11 2017 by
22792455 < a href ="http://yardoc.org " title ="Yay! A Ruby Documentation Tool " target ="_parent "> yard</ a >
22802456 0.9.9 (ruby-2.3.0).
22812457</ div >
0 commit comments