Direkt zum Hauptbereich

rails 4 with activerecord, devise, cancan and rolify for authentication/authorisation

Rails is a great tool and just recently I discovered the full potential of it, although I am still not using to the full.

How do all these gems work together - why rolify?

Devise does the authentication and uses a table named 'User' e.g. and gives the found user access to the specific part of your site.
Now cancan joines the game and since you will have marked models or part of the site with roles, it checks if a user is allowed: authorised.
Normally this is done through another column in the users table (you had to do yourself prior), but then you can assign one role to one user.

Rolify uses another approach when assigning roles, it creates a joint table connecting the User model to the Role model. That "could" mean you can assign several roles to a user, e.g. moderate and also be a mini admin.

Rolify bug:

The migration file had no file extension, with this missing "rb" I chased after the error "could not find Role table".

My Problems with all of them

Active Admin can be installed using Devis, there are just some problems that had me going for a while:
  • the docs are old, so look a the github docs, NO OTHER PAGE!!!
    and I am a little bit pissed because there is a official tutorial that sucks
  • it clashed with foundation, so delete the line in application.css:
    require tree
  • then go to config/environments/production.rb and change the precompile line to:
    config.assets.precompile += %w(active_admin.css.scss )
    config.assets.precompile += %w(active_admin.js.coffee)
  • the mirgration file of active admin using devise was almost similar to the one devise already ran, so there were some unnecessary errors

Test you settings with this command, it may show some other stuff with foundation or bootstrap or whatever is up. This is important because in case you deploy with capistrano that command can cause a failed deployment which then is harder do debug:

RAILS_ENV=production bundle exec rake assets:precompile --trace 


Best practise

Use git and create a branch for this. It is very complex to get all of these to work and it is easy to mess it all up. After all of this is working properly and ActiveAdmin is initialised to use cancan (config/initializers/active_admin.rb) and you login to /admin by your normal log screen/page, then you may do a merge and be happy.

I had to do a hard reset because I followed the wrong (official) page and everything was set up half.


Kommentare

Beliebte Posts aus diesem Blog

Pflanzsack aus Jute

Nachdem ich die Bücher vom Arche Noah Verein schon vorstellte, möchte ich hier eine Topfalternative zeigen, die obendrein noch dekorativ ist. Pflanzsäcke Oder "grow bags", wenn man etwas moderner daher komme möchte bzw. mehr Suchergenisse will. Dabei wollte ich wenig Geld ausgeben, und auch nicht ganz spartan bleiben und den Blumenerdesack dafür nutzen; und bestellte mir 50 kg Jutesäcke für ca. 1,20 EUR/Stück. Nimmt man den ganzen Sack, wird der Topf schon recht groß, auch wenn man etwas des Materials nach innen oder außen faltet. Also nahm ich mir die Freiheit und nähte aus einem großen vier kleine und verbrauchte den letzten Rest unserer Erde fürs Umtopfen der Habanero. Die machte nämlich nun Platz für die sibirische Hauschili und die restlichen von beiden Sorten mischte ich zusammen und stellte sie auf die Fensterbank. Der Vorteil dieser Art von Töpfen liegt auf der Hand: sie sind billig im Vergleich zum Volumen sie sind dekorativ - wirken rustikal biet...

rails + carrierwavve + plupload = multiple file upload

Right now I am very happy! I finished my work on creating a file upload method in rails for more than one file, altogether handled by rails sessions and as objects. First I had to learn a bit more about how rails works and I achieved that by reading a lot: books, screencasts and blogs. In this blog post I like to share what I accomplished, but without the hussle of putting code blocks in here, so watch out for bold formatted text as that is the code. My goal was to have one site with just the pure option of uploading files. All file handling would be done behind the scenes by myself logging onto my server. That said you are not going to see any fancy CRUD here. Lets start then! And dont forget to versioning your app BEFORE you try something new! [e.g. git] > rails g scaffold Photo title:string Now add carrierwave to you Gemfile and run > bundle install >rails g uploader Photo Alltogether you have model, controller, views and an uploader folder with the Ph...

Serienbrief für Einladungen mit LaTeX bzw. XeTeX

Bei uns im Hause wird gerade eingeladen, also wollte ich meine Kenntnisse in LaTeX nutzen, um dies "schön" zu machen. Dabei sollte man dann einfach anstatt LaTeX XeTeX nehmen, welches durch fontenc sämtliche Schriften des laufenden Systems verwenden kann. Und wenn man dann die Leute eingetragen hat in eine solche Tabelle: Hans;Wurst;0 Klaus;Müller;1 Maria;Müller;0 Peter;Huber;2 Katrin;Ingens;0 Dann kreiert folgender Code drei Querseiten a la: -------------------------------------------------------------- |                            |                               | |     Namen            |     ...