嗨,也许这是一个愚蠢的问题,很多帖子都有信息,但我不明白,因为我正在学习铁路..
我制作了这个控制器,posts_controller.rb
def index
@posts = Post.all
end
def show
@post = Post.find(params[:id])
end
def create
@post = Post.new(params[:post])
@post.save
redirect_to @post
end
def new
end
end
现在这是公开的..我怎么能只为管理员做这个,我使用设计。这是>的控制器。 SecureController
class SecureController < ApplicationController
before_filter :authenticate_user!
authorize_resource
def has_role?(current_user, role)
return !!current_user.roles.find_by_name(role)
end
rescue_from CanCan::AccessDenied do |exception|
render :file => "#{Rails.root}/public/403.html", :status => 403, :layout => false
end
end
也是注册人控制器
class RegistrationsController < Devise::RegistrationsController
protected
def after_sign_up_path_for(resource)
if current_user.user_type == 'player'
player_steps_path
elsif current_user.user_type == 'coach'
coach_steps_path
elsif current_user.user_type == 'elite'
candidates_path
end
end
end
我如何才能使域名/ postts/new仅供管理员使用,但域名/域名对所有人开放..
此外,我看到有管理员的观点...我怎样才能使domain.com/admin/posts/new起作用?
任何文档都会很好,但也是一个解释,因为我说,我只是在学习rails。
感谢
答案 0 :(得分:1)
使用:except
before_filter :authenticate_user!, :except => [:new]