为三元关系设计一个restful URI

时间:2012-10-30 14:47:01

标签: ruby-on-rails rest resources uri

我正在开发一个Rails项目,该项目将通过URI公开一组资源。我遇到的问题如下:

考虑这些模型,学生,笔记和课程。每个课程都可以有许多由学生发布的笔记。在Active Record的文献中:

class Lesson < ActiveRecord::Base
  has_many :notes
end

class Student < ActiveRecord::Base
  has_many :notes
end

class Note < ActiveRecord::Base
  belongs_to :lesson
  belongs_to :user
end

现在我想知道URI设计和资源设计以支持以下场景:

  

检索ID为5的学生发布的所有笔记的列表   id为4的课程。

请注意,如果我在routes.rb中定义资源,请执行以下操作:

resources :lessons do
  resources :notes
end

resources :students do
  resources :notes
end

然后我可以通过“/ lessons / 4 / notes /”和“/ students / 5 / notes”访问笔记,但是我之前解释过的查询呢?

提前致谢!

1 个答案:

答案 0 :(得分:2)

这个怎么样?

/notes?lesson=4&student=5

这是一个可能只与GET一起使用的URI。因此,它是一个完全有效的URI,用于标识所需的资源:满足特定条件的所有注释的列表。

注意: REST URI不应受所使用框架支持的限制。