1

好的,所以我正在使用项目应用程序构建一个非常简单的列表,与您的标准待办事项列表应用程序几乎完全相同。我已经设法在列表(点belongs_to :list和列表has_many :points)中创建新的“点”,但我在“销毁”操作时遇到了麻烦。

当我在浏览器中单击破坏链接时,没有明显发生任何事情,并且Error: Syntax error, unrecognized expression: /lists/10/points/125根据列表和点的 id,我显然会收到不同值的错误。

如果我刷新页面或查看数据库,很明显该条目确实已被删除。如果没有 ajax,我的销毁操作就可以正常工作。我觉得我一定遗漏了一些明显的东西,有什么想法吗?

仅供参考,“pro”属性只是与每个点相关的布尔值。

points_controller.rb

def destroy 
  @point = @list.points.find(params[:id])
  @point.destroy
  respond_to do |format|
    format.html { redirect_to list_url(@list) }
    format.js
  end
end

列表/show.html.erb

 <% @list.points.each do |point| %>
      <% if point.pro == true and point.valid? == true %>
        <li class="weight-<%= point.weight %>"><%= point.content %>
          <%= link_to "&times;".html_safe, [@list, point],  
                  :remote => true,
                  :method => :delete, 
                  :class=> "close", 
                  :data => {:dismiss => 'alert'} %>
    </li>

我在views/points/destroy.js.erb中放什么似乎并不重要,因为代码似乎没有被执行。

更新

我想通了,我必须将删除链接中的路径更改为list_point_url(@list, point). 另一个问题是我的无效 javascript 导致服务器错误,所以我没有意识到问题是什么(结果#<%= dom_id(@point) %>需要用引号括起来)。

谢谢大家!

4

1 回答 1

0

也许检查删除链接是否路由到destroy控制器操作,因为list_point_path看起来并不像删除路由。


编辑

对不起知识湖,但我不确定[@list, point]会产生什么作为路线。这是我个人的看法,仅供参考:

link_to "Delete", admin_photo_path(photo), :method => :delete, :confirm => "Delete this image?", :class => "btn-trash"

Myadmin_photo_path是一条通往单个Photo实例的单一路径;不是一个集合。

编辑

简单的方法可能是将删除发送到点对象,也许这会有所帮助?

link_to "&times;".html_safe, point,  
              :remote => true,
              :method => :delete, 
              :class=> "close", 
              :data => {:dismiss => 'alert'}
于 2012-12-24T02:18:54.640 回答