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的新路线时,您需要按上述方法扩展路线。

+0

为快速响应而欢呼!现在工作正常。再次感谢!! – RailsSon 2009-10-02 16:54:03

你在你的config/routes.rb文件中创建了一个对应于:controller =>“queries”,:action =>“execute”的路由吗?

我猜你有这样的路线:

map.resources queries 

这告诉Rails来定义该模型的一些REST风格的路线。当你试图引用其他路由时,Rails找不到它并要求它。

你应该使用修复:

map.resorces queries, :member => {:execute => :post} 

由它来正确地关联到你的动作。