0
嗨,也許這是一個傻瓜的問題,也有很多帖子的信息,但我不明白,因爲IM的學習軌道..驗證在設計上的其他控制器
我有此控制器,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
控制器還Registratons控制器
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
我怎麼能作出這樣的domain.com/posts/new僅僅是供管理員,但domain.com/posts是開放的給大家..
另外我看到有管理員的意見...我如何使domain.com/admin/posts/new工作?
任何文檔都不錯,但也是一個解釋,因爲我說,我只是學習rails。
感謝
非常感謝您的幫助,我在哪裏必須設置該行..在DEF內posts_controller,或之前所有的人..怎麼做這工作,需要了解。 –
語法錯誤,意外的tFID –
是的,沒錯,就像您使用secure_controller一樣。 before_filter工作前置條件驗證器,例如,當用戶調用show動作時,您的帖子控制器將首先調用authenticate_user!以查看用戶是否已登錄。before_filter需要幾個選項來有條件地驗證某個操作。查看[docs](http://apidock.com/rails/ActionController/Filters/ClassMethods/before_filter)以獲取更多信息 – rb512