我是开发 Rails 应用程序的新手,所以在这里的大部分时间里,我只严重依赖 rails generate 命令来为整个应用程序制作脚手架。虽然我的应用程序的所有其他部分都可以正常工作,但这部分在自动生成后立即引发错误。
错误如下:
NoMethodError in ConfigurationsController#index
undefined method `all' for ActiveSupport::Configurable::Configuration:Class
这是包含没有方法调用的代码片段
def index
@configurations = Configuration.all
end
这是有问题的模型
class Configuration < ActiveRecord::Base
belongs_to :users, class_name: 'User', foreign_key: 'user_id'
end
我添加了 belongs_to 部分......无论如何,当我通过http://localhost.localhost:3000/users/1/configurations/运行它时,会弹出错误!(是的,我使用了嵌套路由)
所以我点击rails控制台检查Configuration.all返回的内容,你瞧
2.0.0-p247 :004 > Configuration.all
Configuration Load (0.3ms) SELECT "configurations".* FROM "configurations"
=> #<ActiveRecord::Relation [#<Configuration id: 1, user_id: 1, port: 3000, host: "example.org", annoy: 5000, version: "1", machines: nil, created_at: "2013-08-08 02:15:32", updated_at: "2013-08-08 02:15:32">]>
我有点迷茫,为什么该方法在 rails 控制台中有效,然后在浏览器的 html 视图中失败。我做错什么了吗?
另外,这是 webrick 上的输出,以防有人查找
Started GET "/users/1/configurations/" for 192.168.1.105 at 2013-08-08 10:24:59 +0800
Processing by ConfigurationsController#index as HTML
Parameters: {"user_id"=>"1"}
Completed 500 Internal Server Error in 1ms
NoMethodError (undefined method `all' for ActiveSupport::Configurable::Configuration:Class):
app/controllers/configurations_controller.rb:8:in `index'