我有一个这样定义的资源:
resources :referrals, :except => [:show, :edit, :destroy]
我想替换(不仅仅是添加命名路由)Rails 生成的默认路由,特别是用于更新操作的路由。
这是我的耙子路线:
referrals GET /referrals(.:format) {:action=>"index", :controller=>"referrals"}
POST /referrals(.:format) {:action=>"create", :controller=>"referrals"}
new_referral GET /referrals/new(.:format) {:action=>"new", :controller=>"referrals"}
referral PUT /referrals/:id(.:format) {:action=>"update", :controller=>"referrals"}
share /share(.:format) {:controller=>"referrals", :action=>"new"}
special /special(.:format) {:controller=>"referrals", :action=>"index"}
thanks /thanks(.:format) {:controller=>"pages", :action=>"thanks"}
/:shortlink(.:format) {:controller=>"referrals", :action=>"update"}
/:linktext(.:format) {:controller=>"referrals", :action=>"update"}
root /(.:format) {:controller=>"pages", :action=>"home"}
我想要
/:shortlink(.:format)
或者
/:linktext(.:format)
点击更新操作,但不是
/referrals/:id(.:format)
这是为了实现一种非密码“安全”的形式。当 PUT 进入更新操作时,我希望发生某些事情,但我不想要求授权来执行此操作,并且我不想让基于控制器名称和简单的低 -编号的 ID。
如何完全替换rails 给出的默认路由?