Devise + Create Method

42 views
Skip to first unread message

Ale Diniz

unread,
Jan 10, 2015, 5:18:47 AM1/10/15
to rail...@googlegroups.com
Bom fim de Semana !!!

Estou tentando fazer o seguinte, cada vez que um usuario se cadastrar gostaria que um método fosse acionado...


num caso normal, eu faria mudando no controller... porem estou usando Devise, e to perdidão...  alguem tem ideia?

abs!

Ricardo do Valle

unread,
Jan 10, 2015, 5:30:44 AM1/10/15
to rail...@googlegroups.com
Olá Ale, bom dia.

Não sei se mudou, porque fiz a muito tempo atrás.
Mas, o seu controller só precisa herdar o classe do Devise correspondente e implementar as alterações do seu método.
Também precisa alterar a rota.

Como aqui: 

Espero que tenha ajudado,
Abraços.





--
--
Você recebeu essa mensagem porquê está inscrito no Google
Groups "rails-br".
Para enviar uma mensagem para o grupo, mande um email para rail...@googlegroups.com
Para se descadastrar, mande um e-mail para
rails-br+u...@googlegroups.com
Visite o grupo em http://groups.google.com/group/rails-br?hl=pt-BR
Leia nossa política de uso: http://goo.gl/YGgt7

---
Você recebeu essa mensagem porque está inscrito no grupo "rails-br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para rails-br+u...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Ricardo do Valle

Ale Diniz

unread,
Jan 10, 2015, 1:40:06 PM1/10/15
to rail...@googlegroups.com
Fala Ricardo, eu tava esquecendo de mudar a rota man...

vlw pela força!

abs

Stephann Vasconcelos

unread,
Jan 11, 2015, 5:07:55 PM1/11/15
to rail...@googlegroups.com
Ou faz um after_save ou after_create no modelo do devise

class Usuario < ActiveRecord::Base
    # Include default devise modules. Others available are:
    # :confirmable, :lockable, :timeoutable and :omniauthable
    devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable

    after_create :meu_metodo

    private
    def meu_metodo
       ...
    end
end

Everaldo Gomes

unread,
Jan 11, 2015, 6:06:07 PM1/11/15
to rail...@googlegroups.com
Ou você pode usar um Service Object / PORO representando um caso de uso:

app/service/create_user.rb

class CreateUser

  def initialize(user_params)
    @user_params = user_params
  end

  def perform
     user = User.create(@user_params)
     if user
        # aciona metodo
     else
        # ???
     end
  end

  def self.perform(user_params)
    new(user_params).perform
  end

end

Algo do tipo.....




--

Ale Diniz

unread,
Jan 11, 2015, 6:21:07 PM1/11/15
to rail...@googlegroups.com
Fiz assim:


1)registration_controller.rb 
class Companies::RegistrationsController < Devise::RegistrationsController
  def create
    super
    if @company.save
    send_sms(@manager.cel, 
                     "Olá sr. Ale, a empresa #{@company.name} acaba de se registrar, agora são #{Company.count} empresas cadastradas!" 
    )
    end
  end
end

2)routes.rb
  devise_for :companies,
             :controllers => { :registrations => "companies/registrations"  } 
Reply all
Reply to author
Forward
0 new messages