当我尝试访问list.html.erb页面时,我遇到了这个错误。代码有问题吗?
错误: 没有路线匹配[GET]" /科目/列表"
subjects_controller.rb
nginx:command not found
的routes.rb
class SubjectsController < ApplicationController
def list
@subjects = Subject.order("subjects.position ASC")
end
end
list.html.erb
Rails.application.routes.draw do
get 'demo/index'
end
对此的任何帮助都将非常感激。
答案 0 :(得分:2)
代码有问题吗?
伊利亚指出,路线没有正确宣布。但是使用Rails约定有一种更好的方法。
&#34;列表&#34; rails中的操作称为index
。主题的索引操作应为[GET] "/subjects"
。
routes.rb中:
Rails.application.routes.draw do
resources :subjects, only: [:index]
end
应用程序/控制器/ subjects_controller.rb:
class SubjectsController
# GET /subjects
def index
@subjects = Subject.order(position: :asc)
end
end
您希望将list.html.erb
模式/重命名为app/views/subjects/index.html.erb
。
然后,当您想要添加更多路线以显示,创建,更新等时。您只需删除only
选项:
Rails.application.routes.draw do
resources :subjects
end