0

对于我的Website模型,我当前让用户销毁该模型实例的方法是将其放在 html 页面上:

<%= link_to "delete", website, :method => :delete %>

但是,这必须发送一个DELETE请求/websites/:id(.:format)才能使用 destroy 方法。我不能这样做,因为idmyWebsites是字符串,例如http://example.com, 意思localhost:3000/websites/http://example.com就是没有意义。

所以我想知道的是,Websites除了发送httpDELETE请求之外,还有其他方法可以删除我的模型实例吗?我希望我可以destroy直接访问该方法。

任何帮助是极大的赞赏。

4

3 回答 3

0

我不太确定是否了解您的问题,但您有没有看一下friendly_id

多亏了这个 gem,您将能够使用字符串而不是基本的 sql 主 ID 创建 url。

于 2012-08-15T20:48:58.247 回答
0

您可以通过向您的 routes.rb 添加新路由来访问公共方法。

例如:

路线.rb

post '/websites/:id' => 'websites#destroy', :as => :destroy_website

看法

<%= link_to "destroy", destroy_website_path(:id => "http://example.com"), :method => :post %>
于 2012-08-15T20:50:20.973 回答
0

为什么不将网站的主键 ID 作为整数,然后有一个可以作为http://example.com名称的“url”字符串属性。

这将使许多事情变得更容易,尤其是关联。此外,您仍然可以根据 url 搜索内容,并且您并没有真正受到将 url 设为列和 id # 作为主键的限制。

于 2012-08-15T20:44:43.087 回答