通过非:id的值获取模型成员的路由



我有Students,每个都有一个标准的:id,但它们也有一个唯一的:student_number。我希望能够找到一个学生的观点,只给他们的:student_number

这是我现在的路线:

resources :students do    
    collection do
        get 'find_by_num'
    end
end 

这可以工作,但是感觉有点奇怪,为我知道将是一个结果的东西创建一个"集合"——也就是一个"成员"。同时,成员期望:id,而我没有。

做这件事的可接受的RESTful方式是什么?

我搜索了一个现有的答案,发现了这个问题,但我对路线本身感兴趣。

谢谢你的帮助!

好的,我希望我理解对了你的问题,你想要像

http://myapp.com/users/student_number让你找到特定的学生。

如果是这种情况,你不需要对路由做任何操作,只需要在Users Controller

def show
  @user = User.find_by(student_number: params[:id])
end

然后在视图中,要链接到学生,您将使用:

= link_to user.name, user_path(user.student_number)

最新更新