Ruby On Rails路线问题
问题描述:
我已经开始学习Rails,直到现在它还是很好。Ruby On Rails路线问题
我使用HAML和这个对我index.haml
= submit_to_remote "submit_btn", "Create", :url => {:controller => "queries", :action => "create"}, :method => "post"
= submit_to_remote "exe_btn", "Execute", :url => {:controller => "queries", :action => "execute"}, :method => "post"
试图运行它
No route matches {:controller=>"queries", :action=>"execute"}
只要我删除了这条线时,它给我回这个错误
= submit_to_remote "exe_btn", "Execute", :url => {:controller => "queries", :action => "execute"}, :method => "post"
它的工作没有问题。
有谁知道我做错了什么,对我有什么建议吗?
干杯
EEF
答
修改queries
资源配置中/ routes.rb中
map.resources :queries, :member => { :execute => :post}
如果没有与表单提交的查询ID,然后让它:
map.resources :queries, :collection => { :execute => :post}
重新启动服务器。
这是发生,因为默认map.resources
只给你7的资源路线:
指数,新,创建,编辑,更新,显示和删除。
现在,当您需要一条名为execute
的新路线时,您需要按上述方法扩展路线。
答
你在你的config/routes.rb文件中创建了一个对应于:controller =>“queries”,:action =>“execute”的路由吗?
我猜你有这样的路线:
map.resources queries
这告诉Rails来定义该模型的一些REST风格的路线。当你试图引用其他路由时,Rails找不到它并要求它。
你应该使用修复:
map.resorces queries, :member => {:execute => :post}
由它来正确地关联到你的动作。
为快速响应而欢呼!现在工作正常。再次感谢!! – RailsSon 2009-10-02 16:54:03