Rails设计收集路线问题

时间:2014-08-16 04:12:47

标签: ruby-on-rails authentication devise

我已经搜索过,无法使用以下内容。

我正在尝试添加一个收集路线,如示例"博客"下面的片段。 与索引路由一样,我希望有一个归档路由,当用户未登录到应用程序时,该路由会显示已归档博客条目的视图。博客"索引" route按预期工作,当用户未登录时,会显示索引。遗憾的是,当用户未登录时,存档路由会导致下面列出的错误。当用户登录时,存档路由按预期工作,显示已存档博客条目的列表。

我希望"存档"具有相同的行为。当用户未登录应用程序时,路由与索引路由一样。如何在设计中配置它?

提前谢谢。

摘自routes.rb

resources :blogs do
  collection do
    get 'archive'
  end
end

摘自blogs_controller.rb

class BlogsController < ApplicationController
  before_filter :authenticate_user!, :except => [:index, :archive] # Devise
  ...

网址请求

http://myexample.com/blogs/archive?blog_id=1

产生错误

Access denied on archive Blog(id: integer, name: string, ...
Redirected to http://myexample.com/

1 个答案:

答案 0 :(得分:0)

感谢Anil。

在CanCan的Ability.rb中,我必须将以下行放入用户初始值设定项的默认情况。最初它只有读取选项,我认为它也会包含存档。我不得不添加存档选项。

否则   可以:阅读,[博客]   可以:存档,[博客]