title: Rails belongs_to with custom column name
body: <p>I'm working with a legacy database that gives the following schema for the tables <code>product</code> and <code>familia_producto</code> (<code>rake db:schema:dump</code>)</p>
  <pre><code>create_table &quot;producto&quot;, primary_key: &quot;barcode&quot;, force: true do |t|
    t.string  &quot;codigo_corto&quot;,         limit: 16,               null: false
    t.string  &quot;marca&quot;,                limit: 35
    t.string  &quot;descripcion&quot;,          limit: 50
    t.string  &quot;contenido&quot;,            limit: 10
    t.string  &quot;unidad&quot;,               limit: 10
    t.float   &quot;stock&quot;,                           default: 0.0
    t.float   &quot;precio&quot;
    t.float   &quot;precio_neto&quot;
    t.float   &quot;costo_promedio&quot;
    t.float   &quot;fifo&quot;
    t.float   &quot;vendidos&quot;
    t.boolean &quot;aplica_iva&quot;
    t.integer &quot;otros_impuestos&quot;,      limit: 2
    t.integer &quot;familia&quot;,              limit: 2,  default: 1,   null: false
    t.integer &quot;id_tipo_producto&quot;,     limit: 2,                null: false
    t.boolean &quot;es_perecible&quot;
    t.float   &quot;dias_stock&quot;,                      default: 1.0
    t.float   &quot;margen_promedio&quot;,                 default: 0.0
    t.boolean &quot;es_venta_fraccionada&quot;
    t.float   &quot;stock_pro&quot;,                       default: 0.0
    t.float   &quot;tasa_canje&quot;,                      default: 1.0
    t.float   &quot;precio_mayor&quot;
    t.float   &quot;cantidad_mayor&quot;
    t.boolean &quot;es_mayorista&quot;
    t.boolean &quot;estado&quot;
    t.boolean &quot;precio_editable&quot;
  end
  
  create_table &quot;familia_producto&quot;, force: true do |t|
    t.string &quot;nombre&quot;, limit: 32, null: false
  end
  </code></pre>
  <p>In the models I've this</p>
  <pre><code>class FamiliaProducto &lt; ActiveRecord::Base
    self.table_name = 'familia_producto'
    has_many :productos, :class_name =&gt; 'Producto', :primary_key =&gt; 'barcode', :foreign_key =&gt; 'familia'
  end
  
  class Producto &lt; ActiveRecord::Base
    self.table_name = 'producto'
    belongs_to :familia_producto, :class_name =&gt; 'FamiliaProducto'
  end
  </code></pre>
  <p>But when I call the <code>.familia</code> the producto object throws me a number, not the <code>FamiliaProducto</code> object.</p>
  <pre><code>2.1.0 :012 &gt;   p = Producto.all[0]
    Producto Load (1.7ms)  SELECT &quot;producto&quot;.* FROM &quot;producto&quot;
    =&gt; #&lt;Product......
  2.1.0 :013 &gt; p.familia
    =&gt; 2 
  </code></pre>
  <p>That <code>2</code> should be the <code>FamiliaProducto</code> object.</p>