Два совета:
1) попробуйте использовать для этого самореференциальную модель - только одну таблицу вместо трех - это более скудный дизайн.
2) использовать драгоценный камень "предки" для моделирования родителей / детей - он имеет очень удобные методы, чтобы добраться до родителя, предков или потомков.
См:
http://railscasts.com/episodes/262-trees-with-ancestry (практический RailsCast)
Самостоятельные модели в Rails 3
Если вам нужны эти модели отдельно, вы можете сделать что-то вроде этого:
class User < ActiveRecord::Base
has_many :publications, :through => :ownership
end
class Publication < ActiveRecord::Base
has_many :users , :through => :ownership
end
class Ownership < ActiveRecord::Base # the join table
belongs_to :user
belongs_to :publication
end
, а затем создайте новые публикации, подобные этой:
u = User.find_by_name("John")
u.publications.new( attributes-for-new-publication )
u.save
На самом деле это не отношения между родителями и детьми, а "has_many through"