使用RESTful路由和POST参数

时间:2015-07-24 21:29:08

标签: ruby-on-rails ruby rest ruby-on-rails-4

我有一个大学网站,可以跟踪学生的信息并提供给教师顾问,其中大部分是保密的。此站点中的许多功能都涉及将学生的ID号传递给控制器​​。因为学生ID号是保密的,所以如果我能避免将学生的ID作为参数出现在URL字符串中,我很好奇。这是我到目前为止所调查的内容:

我可以发送身份证号码,而不是通过GET传递学生的身份证明。这样可以正常工作,但后来我很困惑如何使用RESTful路由助手方法,当路由器需要GET请求并且我发送POST请求时。可以自定义吗?

第二个想法(我担心可能有点不雅)是在会话数据中存储哈希值,其中向用户提供的任意数字是该学生ID号的关键。该任意数字出现在URL字符串中,而不是ID号。

我能想到的另一个选择是根本不使用宁静的资源。这是完全可行的,但我想看看是否还有其他选择。

或者有什么我没想到的(非常可能)。

谢谢,

2 个答案:

答案 0 :(得分:0)

REST背后的想法是在正确的场景中使用支持GET,POST,PUT和DELETE的每种方法。

如果您唯一担心的是URL中显示的学生ID,我建议您使用记录ID(数据库自动增加的记录ID)而不是请求中学生的真实ID将真实ID添加为表格中的额外字段。

干杯

答案 1 :(得分:0)

我认为你可能会在这里混淆两种不同的想法。您的学生可能有一个唯一的ID号,可以在教育系统或学校记录中识别它们,就像National identification number一样。但是,您不应该/不应该使用该数字来识别rails应用程序中的记录。

相反,您可以在数据库中使用正常的自动递增列来识别应用程序中的学生。没有任何理由认为这个号码应该保密。