Ruby on rails 为什么RubyonRails使用;链接到。。。方法::删除“;?

Ruby on rails 为什么RubyonRails使用;链接到。。。方法::删除“;?,ruby-on-rails,Ruby On Rails,我刚刚开始学习RubyonRails,这是一个新手问题 是的 $ rails generate scaffold Product blah blah... 下面是scaffold生成的视图文件的片段 <td class="list_actions"> <a href="/products/1">Show</a><br/> <a href="/products/1/edit">Edit</a><br/> <

我刚刚开始学习RubyonRails,这是一个新手问题

是的

$ rails generate scaffold Product blah blah...
下面是scaffold生成的视图文件的片段

<td class="list_actions">
<a href="/products/1">Show</a><br/>
<a href="/products/1/edit">Edit</a><br/>
<a href="/products/1" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a>
</td>



我的问题是,

为什么RubyonRails会以这种方式生成“Destory”的链接?将方法更改为“HTTP DELETE”…等等

而不是以更直接的方式进行, i、 e


因为默认情况下您有,并且默认情况下删除方法用于销毁操作,PUT方法用于更新。因此,如果您以这种方式创建链接:

<a href="/products/1/delete" data-confirm="Are you sure?">Destroy</a>


然后,它将指向获取url的操作
/products/:id/delete
,并且仅当您在
routes.rb
文件中定义该路由时才有效,因为默认情况下您有,并且默认情况下delete方法用于销毁操作,PUT方法用于更新。因此,如果您以这种方式创建链接:

<a href="/products/1/delete" data-confirm="Are you sure?">Destroy</a>


然后,它将指向获取url的操作
/products/:id/delete
,并且仅当您在
routes.rb
文件中定义该路由时才有效,因为它是语义的

尽管web浏览器通常只发送HTTP GET和POST请求,但请求的语义意图是它们用动词一一映射:

  • 后期创建
  • 阅读
  • 放置更新
  • 删除

。。。而且,从实用的角度来看,足智多谋的路线反映了这一点。

因为它是语义的

尽管web浏览器通常只发送HTTP GET和POST请求,但请求的语义意图是它们用动词一一映射:

  • 后期创建
  • 阅读
  • 放置更新
  • 删除

。。。而且,从实用的角度来看,资源丰富的路由反映了这一点。

如果谷歌机器人发出GET请求对您的网站进行爬网,它可能最终会删除您的所有产品@丹尼尔·努布问题。机器人程序是否只通过GET(不是POST、DELETE、PUT等)方法抓取链接?是的,机器人程序通常只发出GET请求,尽管谷歌机器人似乎正在试验POST请求[如果谷歌机器人发出GET请求来抓取你的网站,它可能会删除你的所有产品!@daniel nub question。机器人是否只抓取带有GET方法的链接(而不是POST、DELETE、PUT等)?是的,机器人通常只发出GET请求,尽管谷歌机器人似乎正在试验POST请求[