quali script/plugin usate e consigliate per progetti Rails per quanto riguarda autenticazione utenti e gestione dei permessi ACL o altro?
Ho visto che di roba in giro ce n'è parecchia, anche roba vecchia del 2005-6 e di confusione moltissima...
quali script/plugin usate e consigliate per progetti Rails per quanto riguarda autenticazione utenti e gestione dei permessi ACL o altro?
Ho visto che di roba in giro ce n'è parecchia, anche roba vecchia del 2005-6 e di confusione moltissima...
Sì, decisamente.Originariamente inviato da andrea.paiola
di confusione moltissima...
Attualmente "gli standard" sono:
1. http://github.com/technoweenie/restful-authentication/ per l'autenticazione. E' un plugin molto valido, flessibile e personalizzabile.
2. Per la gestione delle ACL al momento manca qualcosa di veramente valido. Molti usano http://code.google.com/p/rolerequirement/ anche se personalmente non lo trovo così valido e non l'ho mai usato direttamente.
In genere preferisco creare direttamente una gestione ACL a seconda del progetto, ammesso che sia necessario. Molti progetti hanno poco più che anonymous, user e admin e per questo basta qualche metodo aggiuntivo al plugin 1.
beh per divertirmi volevo fare un portalone quindi ogni utente avrà un suo blog, evetuali gallerie di immagini/video ( quindi upload dei file ), intervenire sul forum... volevo una gestione dei permessi esauriente e possibilmente non troppo difficile da usare... boh intanto grazie
guarda un po'![]()
ho fatto tutte queste belle cosine...
ecco sul rake test mi da errorerails portal
cd portal
script/plugin install git://github.com/technoweenie/restful-authentication.git
script/generate authenticated user sessions
script/plugin install git://github.com/timcharper/role_requirement.git
script/generate roles Role User
ruby script/generate scaffold Blog user:references title:string content:text created_at:datetime updated_at:datetime
ruby script/generate scaffold BlogPost blog:references title:string content:text created_at:datetime updated_at:datetime
ruby script/generate scaffold Forum user:references title:string content:text created_at:datetime updated_at:datetime
ruby script/generate scaffold Thread user:references forum:references title:string content:text created_at:datetime updated_at:datetime
ruby script/generate scaffold ForumPost user:references thread:references title:string content:text created_at:datetime updated_at:datetime
ruby script/generate scaffold Gallery user:references title:string content:text created_at:datetime updated_at:datetime
ruby script/generate scaffold GalleryItem gallery:references title:string content:string created_at:datetime updated_at:datetime
rake db:drop:all
rake db:create:all
rake db:migrate
rake test
mi preoccupo o per il momento me ne frego?/usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/1.8/rake/rake_test_loader.rb" "test/unit/blog_test.rb" "test/unit/user_test.rb" "test/unit/forum_post_test.rb" "test/unit/gallery_item_test.rb" "test/unit/forum_test.rb" "test/unit/gallery_test.rb" "test/unit/thread_test.rb" "test/unit/blog_post_test.rb"
/home/nexus6/www/portal/app/models/thread.rb:1: superclass mismatch for class Thread (TypeError)
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:155:in `require'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:262:in `require_or_load'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:221:in `depend_on'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:133:in `require_dependency'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:368:in `load_application_classes'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:367:in `each'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:367:in `load_application_classes'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:365:in `each'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:365:in `load_application_classes'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:185:in `process'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run'
from /home/nexus6/www/portal/config/environment.rb:13
from ./test/test_helper.rb:2:in `require'
from ./test/test_helper.rb:2
from ./test/unit/blog_test.rb:1:in `require'
from ./test/unit/blog_test.rb:1
from /usr/lib/ruby/1.8/rake/rake_test_loader.rb:5:in `load'
from /usr/lib/ruby/1.8/rake/rake_test_loader.rb:5
from /usr/lib/ruby/1.8/rake/rake_test_loader.rb:5:in `each'
from /usr/lib/ruby/1.8/rake/rake_test_loader.rb:5
/usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/1.8/rake/rake_test_loader.rb" "test/functional/forums_controller_test.rb" "test/functional/sessions_controller_test.rb" "test/functional/forum_posts_controller_test.rb" "test/functional/galleries_controller_test.rb" "test/functional/users_controller_test.rb" "test/functional/blog_posts_controller_test.rb" "test/functional/blogs_controller_test.rb" "test/functional/threads_controller_test.rb" "test/functional/gallery_items_controller_test.rb"
/home/nexus6/www/portal/app/models/thread.rb:1: superclass mismatch for class Thread (TypeError)
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:155:in `require'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:262:in `require_or_load'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:221:in `depend_on'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:133:in `require_dependency'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:368:in `load_application_classes'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:367:in `each'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:367:in `load_application_classes'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:365:in `each'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:365:in `load_application_classes'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:185:in `process'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send'
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run'
from /home/nexus6/www/portal/config/environment.rb:13
from ./test/test_helper.rb:2:in `require'
from ./test/test_helper.rb:2
from ./test/functional/forums_controller_test.rb:1:in `require'
from ./test/functional/forums_controller_test.rb:1
from /usr/lib/ruby/1.8/rake/rake_test_loader.rb:5:in `load'
from /usr/lib/ruby/1.8/rake/rake_test_loader.rb:5
from /usr/lib/ruby/1.8/rake/rake_test_loader.rb:5:in `each'
from /usr/lib/ruby/1.8/rake/rake_test_loader.rb:5
/usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/1.8/rake/rake_test_loader.rb"
Errors running test:units and test:functionals!
sono un po' inesperto per usare un eufemismo
le tabelle create nel db sembrano corrette
Thread è un oggetto di Ruby (http://www.ruby-doc.org/core/classes/Thread.html) dunque non puoi chiamare un modello Thread.
L'errore
sta ad indicare che stai ridefinendo in qualche modo la classe Thread senza tenere conto della superclasse dalla quale dipendeva fino a quel momento.codice:/home/nexus6/www/portal/app/models/thread.rb:1: superclass mismatch for class Thread (TypeError)
In altre parole, se originariamente la definizione di una classe è
puoi ridefinirlacodice:class Foo < Bar def do_something end end
e la classe Foo avrà i metodi do_something e do_more ma non puoi farecodice:class Foo < Bar def do_more end end
Nel tuo caso ovviamente non era voluta la redefinizione ma è stato causato dal fatto ch enon conoscevi la presenza di una classe Thread nella standard library.codice:class Foo def do_more end end
Inoltre, nello scaffold, usare created_at:datetime updated_at:datetime è rindondante.
Vengono isneriti di default.
eh infattiOriginariamente inviato da weppos
Thread è un oggetto di Ruby (http://www.ruby-doc.org/core/classes/Thread.html) dunque non puoi chiamare un modello Thread.
[...]
Nel tuo caso ovviamente non era voluta la redefinizione ma è stato causato dal fatto ch enon conoscevi la presenza di una classe Thread nella standard library.
grazie... ora però non so come chiamarlo
questo lo ignoravo :OOriginariamente inviato da weppos
Inoltre, nello scaffold, usare created_at:datetime updated_at:datetime è rindondante.
Vengono isneriti di default.
grazie!
[edit]
mettiamo che lo chiamo ForumThread
poi come gli do il reference nel post?
è giusto?codice:ruby script/generate scaffold ForumPost user:references forumthread:references?codice:ruby script/generate scaffold ForumPost user:references forum_thread:references
Nessuno ti fucila se modifichi a mano uno scaffold.
Una volta generato lo scaffold, ad esempio
puoi benissimo aprire la migration che ti ha creato, che probabilmente si chiamerà qualcosa tipo /db/migrations/<timestamp>_create_forum_threads.rb e dentro troverai un metodo self.up concodice:ruby script/generate scaffold ForumThread title:string content:text
aggiungicodice:create_table :forum_threads do |t| end
Per quanto riguarda la tabella forum_postscodice:create_table :forum_threads do |t| ... t.belongs_to :user end
In realtà puoi anche solo dichiararlo come integer.codice:create_table :forum_posts do |t| ... t.belongs_to :user t.belongs_to :forum_thread end
Infatti in entrambi i casi quello che fa fede è la relazione che poi inserisci nel modello.codice:create_table :forum_posts do |t| ... t.integer :user_id t.integer :forum_post_id end
codice:class ForumPost belongs_to :forum_thread ... endLo stesso discorso vale per lo scaffold con forum_thread_id:integer.codice:class ForumThread has_many :forum_posts ... end
Confesso di non aver mai usato nomecampo:references
lo so che posso modificare a mano ma se imparo ad usare scaffold poi risparmio tempo![]()
Non sempre.Originariamente inviato da andrea.paiola
lo so che posso modificare a mano ma se imparo ad usare scaffold poi risparmio tempo![]()
E comunque è inutile usare lo scaffold senza sapere come agisce.![]()
è appunto quello che sto cercando di capire, incluso references che non fa altro che dare i nomi giusti alle tabelleOriginariamente inviato da weppos
E comunque è inutile usare lo scaffold senza sapere come agisce.![]()
![]()