我是ruby和rails的新手,我希望尽可能遵循编码标准和惯例,所以我不会养成任何坏习惯.我有两个模型:课程和位置.课程属于一个位置,因为课程只能有一个位置.一个位置has_many课程,因为一个位置可以由多个课程共享.
创建课程时,可能已存在通过其ID找到的位置.或者该位置可能尚不存在,在这种情况下,必须创建新的位置记录.我的课程控制器具有以下创建操作.
def create
@course = Course.new(params[:course])
if params[:course][:location][:id].blank?
@course.location = Location.create(params[:course][:location])
else
@course.location = Location.find_by_id(params[:course][:location][:id])
end
@course.save
respond_with @course
end
Run Code Online (Sandbox Code Playgroud)
请注意,这是一个仅使用JSON响应的REST API.使请求的javascript以与GET请求返回的格式相同的方式发布JSON数组
{
"course":
{
"title":"US History",
"credits":"3",
"max_students":"100",
"location":
{
"id":"",
"building":"Freedom Hall",
"room":"301"
}
}
}
or
{
"course":
{
"title":"US History",
"credits":"3",
"max_students":"100",
"location":
{
"id":"12", # this is the only difference
"building":"Freedom Hall",
"room":"301"
}
}
}
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助!