从View中删除String作为Cookie保存

时间:2010-09-20 03:03:05

标签: ruby-on-rails ruby-on-rails-3

我有一个包含记录的数据库表,我在视图页面上显示它们,如下所示。 alt text


我的问题是:如果我单击“销毁”按钮,则不应从数据库中删除相应的“引用”,但应仅从我的浏览器的查看页面中删除(使用cookie?)(不受其他计算机的影响)。我该如何实现呢?谢谢。

销毁视图如下:

<%= link_to "Destroy",quotation_path(p),:method=>:delete  %>

和控制器:

def destroy
    @quotation = Quotation.find(params[:id])
    @quotation.destroy

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

1 个答案:

答案 0 :(得分:0)

不要使用Destroy方法。你没有破坏记录,你只是为一个用户隐藏它。据推测,还有其他用户仍希望看到它。在quotation_controller中创建一个单独的hide方法,并将其映射到routes.rb。

不要使用cookies。用户选择不会在不同的客户端上保留。将隐藏保存在数据库中。在用户和引用之间实现多对多关联,以识别用户选择隐藏(或查看)的引用。 hide方法将用户与引用相关联(或解除关联)。您还需要修改索引方法以从视图中删除所有隐藏的引号,或者在引用模型中执行named_scope以仅返回该用户的未隐藏引号。