2013-06-05 10 views
12

Questo è un nuovo progetto, quindi lo scraping e il riavvio sarebbero facili se qualcuno avesse consigli in quella direzione. In sostanza ho creato gli utenti con devise utilizzando:Creazione di una vista indice per un utente di dispositivo

rails generate devise users 

Ma ora voglio creare un percorso a qualcosa di simile a una pagina gli utenti # indice per visualizzare tutti gli utenti. Non sono riuscito a trovare percorsi che sembrassero applicabili all'uscita rake routes

Il mio prossimo pensiero è stato quello di utilizzare rails generate scaffold user per provare a generare tali viste e le funzioni del controller. Questo non ha funzionato.

Sono relativamente nuovo ai binari, ma ne ho una conoscenza piuttosto generale. Ho appena iniziato a usare il dispositivo, quindi quella parte mi confonde di più, lo sto usando per la convalida. Ho cercato aiuto e ho studiato il devise page un po ', ma senza successo.

Solo alcune informazioni extra. Quando provo il percorso http://localhost:3000/users ottengo uninitialized constant UsersController ma quando ho aggiunto un controller degli utenti si è lamentato solo di qualcos'altro. Ho provato diverse altre cose ma non voglio diluire la domanda entrando in tutte.

risposta

22

Devise nasconde i propri controller e viste nella directory della libreria gem. Puoi trasformare le viste nel tuo progetto per la modifica, ma non c'è nulla di simile per i controller. Vedere lo Devise documentation per alcuni esempi.

E 'abbastanza facile da generare il proprio controller e viste per questo:

config/routes.rb:

# NOTE: put this after the 'devise_for :users' line 
resources :users, only: [:index] 

app/controllers/users_controller.rb:

class UsersController < ApplicationController 

    def index 
    @users = User.all 
    end 

end 

app/visualizzazioni/utenti/index.html.erb:

<ul> 
    <% @users.each do |user| %> 
    <li><%= user.name %></li> 
    <% end %> 
</ul> 

Questo è un esempio minimalista che dovrebbe funzionare per voi.

Si potrebbe prendere in considerazione l'utilizzo di ActiveAdmin, se non è necessario per lo stile come le parti pubbliche della vostra app. Ti consente di evitare la codifica, lo stile e la protezione di molte funzionalità di gestione dei record di base di cui le app hanno bisogno. Uso ActiveAdmin e poi rollò i miei controller/viste/percorsi come sopra per presentare un elenco utenti nelle parti pubbliche dell'app.

+2

questo ha senso, non sapevo se il dispositivo è stato disturbato. lo proverò più tardi oggi –

1

Devise gestirà la registrazione e il login/logout. Non farà altro. L'indice è una tipica azione del controller all'interno di binari. Quando hai generato uno scaffold utente hai aggiunto dei parametri aggiuntivi? Rails getting started ha la documentazione di base. Scorri verso il basso fino alla sesta sezione sugli scaffold. Quando generi uno scaffold, crei un modello, una vista e un controller. La sezione 7 di questo tutorial genera un modello da zero. Nel tuo caso, un modello utente potrebbe avere una stringa per un nome e una stringa per un'email. Un modello può avere molti attributi come valori booleani o interi. (Dovrai aggiungere attributi di configurazione per l'autenticazione come password, ma che può essere aggiunto in seguito.) Prova a generare di nuovo uno scaffold ma con rails generate scaffold user name:string email:string. Questo aggiungerà colonne di nome ed email al tuo modello utente. Da lì lo scaffold dovrebbe impostare le azioni predefinite nel controller e nelle viste di base. Quindi dovresti avere il tuo indice di azione.

Problemi correlati