首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

:用scaffold生成的项目无法实现删除功能

2012-12-14 
求助:用scaffold生成的项目无法实现删除功能百度了下说我是缺少相应的javascript所以我索性就把删除的代码

求助:用scaffold生成的项目无法实现删除功能
百度了下说我是缺少相应的javascript

所以我索性就把删除的代码改成RESTful的删除了

<td><%= link_to 'Destroy', product, :confirm => 'Are you sure?', :method => :delete %></td>
改成了
<td><%= link_to 'Destroy', product_path(product),:confirm => 'Are you sure?', :method => :delete %></td>

可是仍旧不能删除 求解

product_path加上后面的:method => :delete 已经可以确定是进行删除操作了 而且我也提供了参数 product_path(product)

为什么就是不能实现删除功能呢?

另附上controller中删除部分的代码片段:

  def destroy
    @product = Product.find(params[:id])
    @product.destroy

    respond_to do |format|
      format.html { redirect_to(products_url) }
      format.xml  { head :ok }
    end
  end
[解决办法]
研究了很久找到的答案

destroy和show的URL是相同的,但是前者用的是delete请求(其实是post),后者是get请求。

这个post请求是用javascript生成的,进入show说明用的是get方法,javascript没有生效。(在3.0中咋

生效我也不知道)然后将rails升级到3.1.1,如果是rails 3.1,在生产环境部署的话,由于asset 

pipeline的缘故,需要先rake assets:precompile 编译一下js和css,否则application.js是没有加载的


之后再scaffold个工程 删除功能实现了

哦耶~

[解决办法]
assests:precompile 就是压缩min css/js 开发环境下也是有JS的

热点排行