所以我遇到了问题。我正在使用Rails 5.2并且我阅读了很多教程,甚至当我完全按照他们所展示的那样做时我仍然有一些他们没有的东西,而我在谷歌上找不到答案。
我有模特课程,视频,测验和细分。 课程有很多段,段可以是视频或测验(我使用sti)。 这就是我写它的方式:
class Course < ApplicationRecord
validates :title ,presence: true
validates :author ,presence: true
has_many :videos
has_many :quizs
has_many :segments
end
class Segment < ApplicationRecord
belongs_to :course
end
class Quiz < Segment
validates :course_id ,presence: true
validates :name ,presence: true
belongs_to :course
end
class Video < Segment
validates :course_id ,presence: true
validates :name ,presence: true
belongs_to :course
end
class CoursesController < InheritedResources::Base
def show
@course = Course.find(params[:id])
render json: @course.attributes
end
def index
@courses = Course.all
render json: @courses
end
end
class CourseSerializer < ActiveModel::Serializer
attributes :title, :author
has_many :segments
end
我有几个问题:
答案 0 :(得分:0)
SegmentSerializer
。默认情况下,AMS将序列化所有字段。
class SegmentSerializer < ActiveModel::Serializer
attributes :name
end
attributes
方法调用。它返回Hash
,然后不使用序列化程序。```
class CoursesController < InheritedResources::Base
def show
@course = Course.find(params[:id])
render json: @course
end
def index
@courses = Course.all
render json: @courses
end
end
```
使用key
选项
has_many :segments, key: :your_key