我有一个名为Student
的模型,其中有一个名为University_ID
的属性。创建使用模型属性代替Rails中的ID的自定义路线
我创建了一个自定义操作和路由其中通过以下链接显示特定学生的详细信息:students/2/details
即students/:id/details
不过,我希望能够允许用户使用他们的大学ID,而不是数据库ID,这样下将工作例如students/X1234521/details
即students/:university_id/details
我的路由文件看起来像这样的时刻:
resources :students
match 'students/:id/details' => 'students#details', :as => 'details'
但是,这使用Student_ID而不是University_ID,我试过做
match 'students/:university_id/details' => 'students#details', :as => 'details'
,但这只对应于Student_ID,而不是University_ID。
我的控制器看起来是这样的,如果这有助于以任何方式:
def details
@student = Student.find(params[:id])
end
我也试着这样做@student = Student.find(params[:university_id])
,但没了,毫无效果。
或者试试'#学生find_by_university_id(PARAMS [:univeristy_id])'。 'Student#where'(university_id:params [:university_id])'将返回一组学生。 – 2013-04-03 23:54:25
@JimStewart我在这个代码中加入了一个动作:'@student = Student.where(university_id:params [:university_id])。first'? – omarArroum 2013-04-03 23:56:01
没有办法让它互换,即我可以使用'student_id'或'university_id'吗? – omarArroum 2013-04-03 23:59:54