Accesso elaborare current_user variabile in rails controller

Ho Rails (4.0) esecuzione di Elaborare gemma (3.1.0) utilizzando il modello User. Ho controller di nome CollectionsController e voglio arrivare utente attuale oggetto con Escogitare il metodo di accesso current_user in questo controllore.

E dopo che restituisce undefined local variable or method 'current_user' for CollectionsController:Class. La cosa più interessante è che quando sto cercando di fare lo stesso in un altro controllore, per esempio PagesController — tutto funziona perfettamente!
UPD: condividere il “codice” del mio controller 🙂

class CollectionsController < ActionController::Base
    def index
         @user = current_user
    end
end

fonte di current_user metodo è definito da Inventare, non a me. Quindi non credo che sia il problema.

Si prega di condividere il tuo codice sotto CollectionsController e qualsiasi codice relativo al metodo current_user
È che il codice inserito in un’azione o in mezzo al controller del genere?
sì, scusa, è inserito all’interno di index azione
C’è un motivo per cui si sta ereditando da ActionController::Base piuttosto che ApplicationController?
Ragazzi, scusate, ho trovato il problema. Il caso è la cartella che ho creato nel controller cartella per scopi di backup e sembra che ci fosse un qualche tipo di conflitto o di che cosa. Quando ho cancellato tutto e iniziato a lavorare. Come per l’eredita da ActionController::Base no, non c’è motivo. Ho appena provato tutte le opzioni disponibili nella disperazione 🙂 E non ha funzionato con entrambi.

OriginaleL’autore Dima Knivets | 2013-10-02

3 risposte

  1. 12

    current_user è una comodità metodo reso disponibile da Inventare per ApplicationController. Il controller dovrebbe essere eredita da:

    class CollectionsController < ApplicationController

    Sembra potrebbe essere che fonde ActiveRecord::Base (sottoclasse da modelli) con ActionController (sottoclasse da controller). Secondo Guide di documenti:

    Per impostazione predefinita, solo il ApplicationController in una applicazione Rails eredita da ActionController::Base. Tutti gli altri controller a sua volta eredita da ApplicationController.

    Vedere lib/devise/controller/helper.rb @ repo github per ulteriori info

    OriginaleL’autore zeantsoi

  2. 1

    Ho avuto lo stesso problema. Alcuni controller potrebbe accedere current_user e gli altri non potevano. In un caso, è stato un erb file di accesso current_user ma solo dopo aver chiesto user_signed_in? ho aggiunto che il check-in il mio codice del controller e voilà! current_user era disponibile.

    OriginaleL’autore user3468739

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *