{"version":"1.0","provider_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","provider_url":"https:\/\/fatihsoysal.com\/blog","author_name":"Fatih Soysal","author_url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/","title":"Rails'te X -> Y -> X \u0130li\u015fkilerini Y\u00f6netmek","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"T3avCcSsQr\"><a href=\"https:\/\/fatihsoysal.com\/blog\/railste-x-y-x-iliskilerini-yonetmek\/\">Rails&#8217;te X -> Y -> X \u0130li\u015fkilerini Y\u00f6netmek<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/fatihsoysal.com\/blog\/railste-x-y-x-iliskilerini-yonetmek\/embed\/#?secret=T3avCcSsQr\" width=\"600\" height=\"338\" title=\"&#8220;Rails&#8217;te X -&gt; Y -&gt; X \u0130li\u015fkilerini Y\u00f6netmek&#8221; &#8212; Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" data-secret=\"T3avCcSsQr\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n<\/script>\n","description":"Rails uygulamalar\u0131nda s\u0131kl\u0131kla kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z karma\u015f\u0131k ili\u015fki tiplerinden biri de X -> Y -> X ili\u015fkileridir. Bu ili\u015fkilerde, iki X modeli birbirine Y modeli \u00fczerinden ba\u011fl\u0131d\u0131r. \u00d6rne\u011fin, bir kullan\u0131c\u0131 (X) bir\u00e7ok g\u00f6nderi (Y) yazabilir ve her g\u00f6nderi (Y) yaln\u0131zca bir kullan\u0131c\u0131ya (X) ait olabilir. Ancak, bu basit \u00f6rnek bile, ili\u015fkilerin do\u011fru bir \u015fekilde modellenmesinde ve verimli bir \u015fekilde kullan\u0131lmas\u0131nda baz\u0131 zorluklar ortaya \u00e7\u0131karabilir. Bu makalede, Rails'te bu t\u00fcr ili\u015fkileri nas\u0131l ele alaca\u011f\u0131n\u0131z\u0131, farkl\u0131 yakla\u015f\u0131mlar\u0131 ve bunlar\u0131n avantajlar\u0131n\u0131 ve dezavantajlar\u0131n\u0131 detayl\u0131 olarak inceleyece\u011fiz. Fatih Soysal blo\u011funda daha fazla Rails i\u00e7eri\u011fi bulabilirsiniz."}