我有一个经典的帖子属于用户关联。我想将default_scope应用于#index
等所有操作,因此它仅列出我的帖子。但我希望能够在我进入#show
操作时看到来自任何人的帖子,如果按照指向它的链接。
如何避免将default_scope应用于该操作?
class Post < ActiveRecord::Base
belongs_to :user
end
ActiveAdmin.register CertificationModel do
controller do
def scoped_collection
current_user.posts
end
end
end
答案 0 :(得分:5)
解决方案很简单:保留scoped_collection
并重新定义#show
行动。
ActiveAdmin.register Post do
controller do
def show
@post = Post.find params[:id]
end
def scoped_collection
current_user.posts
end
end
end
答案 1 :(得分:0)
您可以调用super来执行您不希望调用scoped_collection
的其他操作。
ActiveAdmin.register Post do
controller do
def scoped_collection
if ['index', 'action2', 'action3'].include?(params[:action])
current_user.posts
else
super
end
end
end
end