Rails通过Ajax破坏js错误



我正在构建一个非常简单的带有项目的列表应用,和标准的待办事项列表应用非常相似。我已经设法在列表(点belongs_to :list和列表has_many :points)中ajax化新"点"的创建,但我遇到了"破坏"动作的麻烦。

当我在浏览器中点击destroy链接时,什么都没有发生,我得到的错误Error: Syntax error, unrecognized expression: /lists/10/points/125明显不同的值取决于列表和点的id。

如果刷新页面或查看数据库,很明显条目确实已被删除。没有ajax,我的destroy操作工作得很好。我觉得我一定错过了一些明显的东西,有什么想法吗?

fyi '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) %>需要用引号包装)。

谢谢!

也许可以检查一下删除链接是否路由到destroy控制器动作,因为list_point_path看起来不像一个删除路由。


编辑

对不起,知识的湖,但我不确定什么[@list, point]将产生作为一个路线。以下是我个人的观点,仅供参考:

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

我的admin_photo_path是一个奇异路径,路由到单个Photo实例;不是集合

编辑

简单的方法可以发送delete到点对象,也许这可以帮助?

link_to "&times;".html_safe, point,  
              :remote => true,
              :method => :delete, 
              :class=> "close", 
              :data => {:dismiss => 'alert'}

相关内容

  • 没有找到相关文章

最新更新