但我希望它能匹配[POST]“/ student_tests / 1 / upload”
在我添加的routes.rb中
resources :student_tests do
member do
post 'upload'
end
end
在我添加的students_test_controller中
def upload
render :upload
end
在student_test的索引页面
<%= link_to "| Upload Scaled Scores", upload_student_test_path(test), method: :edit%>
其中test是student_test的对象
使用Rack路径
upload_student_test POST /student_tests/:id/upload(.:format) student_tests#upload
我在搜索“/student_tests/upload.1”时犯了什么错误,我希望它能找到“/ student_tests / 1 / upload”(这里1是学生考试的ID)
答案 0 :(得分:1)
您已在路线中创建了“POST”成员操作,但您却以错误的方式与其关联:
<%= link_to "| Upload Scaled Scores", upload_student_test_path(test), method: :edit%>
实际应该是这样的:
<%= link_to "| Upload Scaled Scores", upload_student_test_path(test), method: :post %>
然而,这可能不是传统的路由路由方式。如果您只想在那里呈现视图,GET
方法将是最合适的。上传文件时,您可以使用此处尝试的POST
方法。
答案 1 :(得分:0)
我认为您使用路线的方式可以更改如下:
match ':controller(/:action(/:id(.:format)))'
我不明白你在控制器动作之前想要ID的原因。您可以更改路由格式并相应地访问ID。
你提出这个问题的方式可能会更好,因为我发现很难理解你的问题。用我的理解回答这里。