我有一个 API,其中我在角色和电影之间建立了 HABTM 关系(一部电影有很多角色,一个角色有很多电影)。我正在尝试使用 has_scope gem 设置过滤器,这样我就可以做类似
的事情/api/characters?by_movie=:movie_id
,而不是从我的 CharactersController 中的索引中获取所有角色,我只获取参与特定电影的角色。建立关系的方式允许我执行类似Characters.find(1).movies
-> 返回该角色的电影列表的操作。如果我向角色发送 POST 并且我想向其中添加电影,我可以像“movie_ids”:[1,2] 那样做。
我试过这种方法没有成功:
在我的 Character.rbscope :by_movie, -> id, {where(movie_ids: id)}
和scope :by_movie, -> id, {where(movies: id)}
我的控制器中:has_scope :by_movie, using: :id
has_scope 中的文档很少,我无法找到我的具体问题,希望你们中的一些人能帮助我,谢谢。