Rails 查询父模型未检索到子模型
Rails query of parent model doesn't retrieve child models
我在 rails 5 上有父模型和子模型,id 为 mongo。当我使用 .includes
命令查询父级时 - 我可以看到 rails 试图查询 mongo 数据库 - 但结果 json 没有 return 子对象.
父模型:
class Activity
include Mongoid::Document
field :title, type: String
has_many :activity_pictures
end
童模:
class ActivityPicture
include Mongoid::Document
field :name, type: String
belongs_to :activity, :class_name => 'Activity'
end
控制器方法:
def index
@activities = Activity.includes(:activity_pictures).all
end
def show
Activity.includes(:activity_pictures)
end
当然,我更新了activity_params:
def activity_params
params.require(:activity).permit(:title, :activity_pictures)
end
如何从 http://localhost:3000/activities.json 和单个对象链接中获取完整的 json 数据?
在使用 includes
加载关联时,您需要专门调用加载的关联才能呈现。尝试
def index
@activities = Activity.includes(:activity_pictures).all
render json: @activities, include :activity_pictures
end
margo 上面的回答是正确的。不过我正在使用 jbuilder,所以解决方案是更改文件
index.json.jbuilder
如下:
json.array! @activities do |activity|
json.title activity.title
json.activity_pictures activity.activity_pictures do |activity_picture|
json.name activity_picture.name
end
end
我在 rails 5 上有父模型和子模型,id 为 mongo。当我使用 .includes
命令查询父级时 - 我可以看到 rails 试图查询 mongo 数据库 - 但结果 json 没有 return 子对象.
父模型:
class Activity
include Mongoid::Document
field :title, type: String
has_many :activity_pictures
end
童模:
class ActivityPicture
include Mongoid::Document
field :name, type: String
belongs_to :activity, :class_name => 'Activity'
end
控制器方法:
def index
@activities = Activity.includes(:activity_pictures).all
end
def show
Activity.includes(:activity_pictures)
end
当然,我更新了activity_params:
def activity_params
params.require(:activity).permit(:title, :activity_pictures)
end
如何从 http://localhost:3000/activities.json 和单个对象链接中获取完整的 json 数据?
在使用 includes
加载关联时,您需要专门调用加载的关联才能呈现。尝试
def index
@activities = Activity.includes(:activity_pictures).all
render json: @activities, include :activity_pictures
end
margo 上面的回答是正确的。不过我正在使用 jbuilder,所以解决方案是更改文件
index.json.jbuilder
如下:
json.array! @activities do |activity|
json.title activity.title
json.activity_pictures activity.activity_pictures do |activity_picture|
json.name activity_picture.name
end
end