Creare un admin area in rails3 usando l’autenticazione scritta in devise
1)aggiungere il namespace "admin" in routes.rb, ed abbinarlo ai controller per i quali vogliamo l'autenticazione, in questo esempio "questions".
namespace :admin do match '/' => 'questions#index' resources :questions end
2In views/layout creare il layout admin.html.erb specificando le parti che vogliamo mostrare nella sezione admin.
3) creare il controller admin_controller.rb in controllers/admin e utilizzare "autenticate_user" (vedere il tutorial su devise) per verificare che un utente sia loggato
class Admin::AdminController < ApplicationController layout "admin" before_filter :authenticate_user! end
4) Sempre in controllers/admin, creare il file questions_controller.rb
class Admin::QuestionsController < Admin::AdminController
def index
@questions = Question.all
respond_to do |format|
format.html # index.html.erb
end
end
end
5)in views/admin creaimo la cartella "questions" e inderiamo tutte le views richieste dal controller controllers/admin/questions_controller.rb, in questo caso, solo il file index.html.rb
6
Le action dei form all'interno delle views in views/admin/questions devono rimandare ai controllers in controllers/admin/question controller. Quindi, sempre tenendo "question" come esempio da:
<%= form_for(@answer) do |f| %>
dobbiamo passare a
<%= form_for(:admin, @answer) do |f| %>