Ruby on rails RubyonRails不向数据库添加记录

Ruby on rails RubyonRails不向数据库添加记录,ruby-on-rails,ruby,Ruby On Rails,Ruby,我已经有一段时间没有接触Ruby on Rails了,我很难将数据输入到我的模型中 以下是我提交表单时服务器所说的话: Processing ScoresController#index (for 127.0.0.1 at 2010-03-26 15:31:44) [POST] Parameters: {"commit"=>"Add", "authenticity_token"=>"326dd05ffa596bfa12ec3ebb6f48933dbad8dc0c", "score

我已经有一段时间没有接触Ruby on Rails了,我很难将数据输入到我的模型中

以下是我提交表单时服务器所说的话:

Processing ScoresController#index (for 127.0.0.1 at 2010-03-26 15:31:44) [POST]
  Parameters: {"commit"=>"Add", "authenticity_token"=>"326dd05ffa596bfa12ec3ebb6f48933dbad8dc0c", "score"=>{"name"=>"third score", "score"=>"4"}}
  Score Load (0.5ms)   SELECT * FROM "scores" ORDER BY score DESC
Rendering scores/index
Completed in 5ms (View: 2, DB: 0) | 200 OK [http://0.0.0.0/scores]
但是记录没有被添加到数据库中,我知道这是非常简单的东西,但是我不明白为什么它不起作用


您可以在my github上的此处看到源代码:

它可能没有通过验证,并且您的控制器不会检查保存是否失败

另外,您发布了一个用于索引的日志,但不用于创建。。。但是帖子的索引是错误的,啊哈!它没有运行create方法。可能是路由问题。啊,是的,在默认路由语句之后有map.resources。这两行应该是文件中的最后一行(如果使用):

map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'

为什么不使用资源生成器为您编写一个默认的脚手架?从已经有效的示例中学习要容易得多。:)

看起来您将表单提交到索引而不是创建。尝试重新排列routes.rb文件。优先级基于创建,因此顺序应该是map.resources、map.root,然后是map.connect行

map.resources :scores
map.root :controller => "scores"
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'

尤里卡!现在效果很好,虽然这可能与我的路线排序有关,但我不确定是什么。我更喜欢从头开始用艰苦的方式来做它,它迫使我学会如何做事情,就像我现在知道如何正确使用排序的路线:)