没有路线匹配[GET]" /科目/列表"

时间:2016-02-14 18:08:24

标签: ruby-on-rails

当我尝试访问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

对此的任何帮助都将非常感激。

1 个答案:

答案 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