I have a model in my Rails app that uses the :class_name
attribute for has_one
:
class Foo < ActiveRecord:Base
has_one :main_bar, :class_name => "Bar"
# ...
end
I'm a bit unsure what to put in the migration for this class now. Can I use references? What will Rails be looking for as the column name for :main_bar
? Can I do it like this?
class CreateFoos < ActiveRecord::Migration
def self.up
create_table :foos do |t|
t.references :main_bar
end
end
def self.down
drop_table :foos
end
end
Thanks!
You don't put anything in the table with the "has_one" relationship. The foreign_key goes in the other table. In your example above, you'd need to add a foreign key to your bars
table.
In the migration you can use:
t.references :foo
or:
t.integer :foo_id
Either one will work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With