我已经有一段时间了,因为我深入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]
但是记录没有添加到数据库中,我知道这是非常简单的东西,但我很难过为什么它不起作用!
你可以在我的github上看到源代码:http://github.com/AlexEdwardFish/Scores/tree/master/app/
答案 0 :(得分:1)
它可能没有通过验证,并且您的控制器不会检查保存是否失败。
另外,你发布了一个索引日志,但不是为了创建...但是post对于索引是错误的啊哈!它没有运行create方法。可能是路由问题。是的,你有默认路由语句后的map.resources 。这两行应该是文件中的最后一行(如果使用的话):
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
为什么不使用资源生成器为您编写默认支架?从已经有效的例子中学习要容易得多。 :)
答案 1 :(得分:1)
看起来您要将表单提交到索引而不是创建。尝试重新排列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'