在routes.rb中我有
map.resource :user
在我想要的一个模板中
link_to 'delete', some_other_user
,:method => :交
我希望这会生成像
这样的网址 /user/#{some_other_user.id}
但改为
/user.#{user.to_s}
我找到的唯一解决方案是添加新路线
map.delete_user 'users/:id', :controller => 'users', :action => 'destroy', :method => :delete
然后使用
link_to 'delete', delete_user_url(user), :method => :delete
这看起来有点hacky,有更清洁的方式吗?
答案 0 :(得分:1)
单例资源通常用于对一个资源(例如,当前用户)执行操作。如果我想操纵另一个用户,例如从管理员的角度来看,我会
map.resources :users
如果我只想对其他用户执行销毁操作,我会
map.resources :users, :only => [:destroy]
然后你只能执行销毁行动。
在此用户编辑他们的帐户和管理员管理所有帐户的情况(如果我假设正确)我会创建两个控制器,
路线就像这样:
map.resource :account
map.resources :users
这样,如果需要,可以将权限分为普通用户和管理员权限。
希望这有帮助
答案 1 :(得分:0)
除了AntRamm的回答,要获取资源的销毁URL,您需要手动将方法指定为删除:
link_to 'delete', user_url(some_other_user), :method => :delete
有关详细信息,请参阅the docs
。