Rails アジャイル本 第11章 タスクF:ユーザ管理(Initial Login)
2010年03月28日
ユーザが1人も登録されていない場合に、フリーアクセスできるようにする。
アクセス制限のフィルタリング(authorize
)時にユーザ数を確認して処理する。
ユーザ数が 0
ならばメッセージを表示させ、サイドバーに管理機能へのリンクを表示させる。
app/controllers/application_controller.rb
def authorize if User.count.zero? flash[:notice] = 'Make the first user' else unless User.find_by_id(session[:user_id]) session[:original_uri] = request.request_uri flash[:notice] = 'Please login' redirect_to :controller => 'admin', :action => 'login' end end end
app/views/layouts/store.html.erb
<% if session[:user_id] or User.count.zero? %> <br /> <%= link_to 'Order', :controller => 'orders' %><br /> <%= link_to 'Product', :controller => 'products' %><br /> <%= link_to 'User', :controller => 'users' %><br /> <br /> <%= link_to 'Logout', :controller => 'admin', :action => 'logout' %> <% end %>
テストする際に、セッション情報が残っている場合、削除しておく。
$ rake db:sessions:clear
RailsによるアジャイルWebアプリケーション開発
posted with amazlet at 10.03.15
Sam Ruby David Heinemeier Hansson Dave Thomas
オーム社
売り上げランキング: 29946
オーム社
売り上げランキング: 29946