在我的Rails应用程序中,我希望能够提交子提交的提交,或者属于同一模型的同一模型的实例。此外,还需要一个孩子"如果提交的子提交有子提交,则提交JSON中的属性。我需要能够通过前端JS检查。这是我的submission.rb文件:
class Submission < ActiveRecord::Base
belongs_to :user
belongs_to :folder
belongs_to :parent, :class_name => 'Submission'
has_many :children, :class_name => 'Submission', :foreign_key => 'parent_id', :order => ('updated_at DESC')
attr_accessible :content, :title, :user_id, :folder_id, :parent_id
def self.search(search)
if search
where('name LIKE ?', "%#{search}%")
else
scoped
end
end
end
我通过:parent_id
属性提交了一些属于一个父提交的子提交,但我检查了父提交JSON,它看起来像这样:
{"content":"Test","created_at":"2013-09-02T01:18:06Z","folder_id":4,"id":176,"parent_id":null,"title":"Title test","updated_at":"2013-09-02T01:18:06Z","user_id":2}
如您所见,没有children
属性显示属于此父级的提交。在我的Rails应用程序中,我还有可以存储子文件夹的文件夹,我没有设置这种关系的问题。但这不起作用。我做错了什么?
答案 0 :(得分:2)
是否返回了Rails关系或json数据的问题?
关系是否在rails控制台中有效? e.g。
Submission.find(176).children
你是如何渲染你的json的?如果你使用的是默认的Rails json渲染,你必须明确告诉Rails你要包含的has_many关系,例如。
render json: @submission.to_json(:include => :children)
如果你没有使用json builder(jbuilder,rabl等),我强烈推荐使用active_model_serializers