2010-10-27 74 views
1

的破坏作用:轨道3销毁行动失败

def destroy 
    @tag = Tag.find(params[:id]) 
    @tag.destroy 

    respond_to do |format| 
    format.html { redirect_to(tags_url) } 
    format.xml { head :ok } 
    end 
end 

链接:

<a href="/tags/14" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a> 

点击它呈现的表演动作。

Started GET "/tags/14" for 127.0.0.1 at Wed Oct 27 18:36:41 -0500 2010 
Processing by TagsController#show as HTML 
Parameters: {"id"=>"14"} 
Tag Load (0.2ms) SELECT "tags".* FROM "tags" WHERE ("tags"."id" = 14) LIMIT 1 
Rendered tags/show.html.erb within layouts/application (8.5ms) 
Completed 200 OK in 25ms (Views: 12.1ms | ActiveRecord: 0.2ms) 

javascript_include_tag:默认值包含在我的页面上,并且脚本标记呈现正确。 Firebug不会给我任何错误。这发生在Firefox和Opera中。

回答

1

这可能是你如何写你的link_to方法。

<%= link_to "Destroy", tag, :method => :delete, :confirm => "Really?" %> 

试试看。


确保你在你的routes.rb文件中声明的资源,因为这是什么让这个奉送的URL。

在2.3.8它是

map.resources :tags 

在R3我真的不知道,但导游有它这样的

resources :tags 
+0

如果你使用内置的佣工 – MatthewFord 2010-10-28 00:10:11

+0

它也可以。唯一的区别是:确认和:方法params的顺序是相反的。我将它们切换以防万一,但事实并非如此。 – herpderp 2010-10-28 00:17:09

+0

你是否在你的路线文件中声明了这个。如果您有map.resources:资源声明,则此路线仅可用。至少这是2.3.8如何做的,我还没有升级。 – s84 2010-10-28 00:36:56

0

要使用方法重写你需要发送_method参数。对于像破坏这样的操作,它应该是一个表单,您可以使用_method参数设置为delete进行POST,如果您喜欢,可以在单击链接时用JS构造表单。