rails example espaƱol ejemplos ruby-on-rails model devise

ruby on rails - example - accediendo a idear usuario_actual dentro del modelo



devise wiki (3)

No es una buena forma de acceder al usuario_actual en un modelo, esta lógica pertenece al controlador. Pero si realmente no puede encontrar una solución, debería ponerla en un hilo. Pero ten en cuenta que esta no es la forma en que debería construirse.

http://rails-bestpractices.com/posts/47-fetch-current-user-in-models

hola, intento acceder a current_user dentro de un modelo con el fin de crear un elemento sobre la marcha con find_or_create_by.

el siguiente es el método dentro de mi modelo

def opponent_name=(name) self.opponent = Opponent.find_or_create_by_name_and_team_id(name,current_user.team_id) if name.present? end

pero el error que estoy recibiendo es

NameError in EventsController#create undefined local variable or method `current_user'' for #<Event:0x007fb575e92000>


current_user no es accesible desde los archivos de modelo en Rails, solo controladores, vistas y ayudantes.

Lo que debes hacer es pasar el current_user.team_id al método opponent_name esta manera:

def opponent_name=(name, current_user_team_id) self.opponent = Opponent.find_or_create_by_name_and_team_id(name,current_user.team_id) if name.present? end


Acceda a current_user en el archivo de modelo:

# code in Applcation Controller: class ApplicationController < ActionController::Base before_filter :global_user def global_user Comment.user = current_user end end #Code in your Model File : class Comment < ActiveRecord::Base cattr_accessor :user # it''s accessible outside Comment attr_accessible :commenter def assign_user self.commenter = self.user.name end end

Perdónenme si viola las Reglas de Arquitectura de MVC.