rails new example
rails g scaffold widget
rake db:migrate
scope ":year" do resources :widgets end
curl http://0.0.0.0:3000/2011/widgets
成功echo "Widget.new.save" | rails c
curl http://0.0.0.0:3000/2011/widgets/1
成功curl http://0.0.0.0:3000/2011/widgets
因以下错误而失败: No route matches {:action=>"show", :controller=>"widgets", :year=>#<Widget id: 1
..等等。
为什么它认为行动是“显示”?为什么它认为年份是小部件实例?很奇怪。我在rails 3.0.9和3.1.0.rc6中得到了相同的结果。
提前感谢您的帮助。
答案 0 :(得分:2)
试
resources :widgets
(最后是S)
UPD:在index.html.erb而不是
link_to widget
使用像
这样的smthlink_to widget_path(widget, :year => 2011)
或
link_to widget_path(2011, widget)