我已经开始学习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
答案 0 :(得分:4)
修改config / routes.rb中的queries
资源
map.resources :queries, :member => { :execute => :post}
如果您没有随表单提交的查询ID,请将其包含在内:
map.resources :queries, :collection => { :execute => :post}
重启服务器。
这种情况正在发生,因为默认map.resources
只为您提供了7条资源路径:
索引,新建,创建,编辑,更新,显示和删除。
现在您需要一条名为execute
的新路线,然后您需要按照上述说明扩展路线。
答案 1 :(得分:0)
您是否在config / routes.rb文件中创建了一个路径,该路径对应于:controller => “queries”,:action => “执行”?
我猜你有一条路线:
map.resources queries
这告诉Rails为该模型定义一些RESTful路由。当您尝试引用其他路由时,Rails无法找到它并请求它。
您应该使用以下方法修复它:
map.resorces queries, :member => {:execute => :post}
然后会将其正确映射到您的操作。