对于我的Website
模型,我当前允许用户销毁该模型实例的方法是将其放在html页面上:
<%= link_to "delete", website, :method => :delete %>
但是,这必须向DELETE
发送/websites/:id(.:format)
请求才能使用destroy方法。我不能这样做是因为id
的{{1}}是Websites
之类的字符串,意味着http://example.com
只是没有意义。
所以我想知道的是,除了发送http localhost:3000/websites/http://example.com
请求之外,还有另一种删除Websites
模型实例的方法吗?我希望我可以直接访问DELETE
方法。
非常感谢任何帮助。
答案 0 :(得分:0)
为什么不将网站的主键ID作为整数,然后有一个“url”字符串属性,可以是http://example.com
名称。
这将使许多事情变得更容易,特别是协会。此外,您仍然可以根据网址搜索内容,并且您不必将网址设为列并将ID#作为主键。
答案 1 :(得分:0)
我不是很确定你能理解你的问题,但是你看看friendly_id了吗?
感谢这个gem,你将能够用字符串而不是基本的sql primary id创建url。
答案 2 :(得分:0)
您可以通过向routes.rb添加新路由来访问公共方法。
例如:
的routes.rb
post '/websites/:id' => 'websites#destroy', :as => :destroy_website
视图
<%= link_to "destroy", destroy_website_path(:id => "http://example.com"), :method => :post %>