我有父模型,子模型和连接模型。如果我需要引用parent_id和child_id,那么连接模型的控制器是什么样的?
例如,我有:
def new
@join = JoinModel.new
new
def create
@join = JoinModel.new(params[:join_model])
@parent_id = current_user.id
end
我的问题是,如何引用子模型对象?
如果我使用@child = Child.find(params[:id]), it gives me the error
无法找到没有身份证明的孩子。
帮助。
感谢。
答案 0 :(得分:0)
两个提示:
1)尝试使用自引用模型 - 只有一个表而不是三个表 - 这是一个更精益的设计。
2)使用“祖先”宝石模拟父母/孩子 - 它有非常方便的方法来到父母,祖先或后代。
请参阅:
http://railscasts.com/episodes/262-trees-with-ancestry(亲身实践RailsCast)
Self-referencing models in 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”