ActionController :: RoutingError(未初始化的常量AdminsController)

我正在使用Rails 3和dhtmlxGrid 。 我创建了一个名为admin的控制器,我们定义了3个函数,例如viewdatadbaction及其视图文件。

下面是我的admin控制器文件。

  class AdminController < ApplicationController def view end def data @users = User.all() end def dbaction #called for all db actions first_name = params["c0"] last_name = params["c1"] phone = params["c2"] @mode = params["!nativeeditor_status"] @id = params["gr_id"] case @mode when "inserted" user = User.new user.first_name = first_name user.last_name = last_name user.phone = phone user.save! @tid = user.id when "deleted" user=User.find(@id) user.destroy @tid = @id when "updated" user=User.find(@id) user.first_name = first_name user.last_name = last_name user.phone = phone user.save! @tid = @id end end end 

下面是我的view.rhtml文件。

            
var grid = new dhtmlXGridObject("grid_here"); grid.setImagePath("/javascripts/codebase/imgs/"); grid.setHeader("First name, Last name, Phone"); grid.setInitWidths("100,100,*"); grid.setSkin("dhx_skyblue"); grid.init(); grid.load("/admin/data.xml"); db = new dataProcessor("/admin/dbaction.xml"); db.init(grid);

下面是我的data.rxml文件。

 xml.instruct! :xml, :version=>"1.0" xml.tag!("rows") do @users.each do |user| xml.tag!("row",{ "id" => user.id }) do xml.tag!("cell", user.first_name) xml.tag!("cell", user.last_name) xml.tag!("cell", user.phone) end end end 

下面是我的dbaction.rxml文件。

 xml.instruct! :xml, :version=>"1.0" xml.tag!("data") do xml.tag!("action",{ "type" => @mode, "sid" => @id, "tid" => @tid }) end 

下面是我的route.rb文件。

 resource :admin do collection do get 'view' get 'data' get 'dbaction' end end 

以下是迁移文件。

 class CreateUsers  "John", :last_name => "Smith", :phone => "997347854") user.create( :first_name => "Stanislav", :last_name => "Wolski", :phone => "465764778" end def self.down drop_table :users end 

结束

这是我用来开发上述程序http://www.dhtmlx.com/blog/?p=426的链接

尝试将控制器的名称更改为AdminsController。 Rails似乎更喜欢多个控制器名称。

只是为了补充@Paul所说的内容。 当您为控制器使用复数时,Rails真的很喜欢它,但如果你可以匹配文件admin_controller.rb的名称和类AdminController上的名称,那么在一天结束时,这应该也可以正常工作。

否则,配置方法上的rails约定规定了控制器名称的复数。