2013-06-16 7 views
6

Sto andando su Attività pubblica Gem Railscast Vid. (http://railscasts.com/episodes/406-public-activity)Come impostare l'ID destinatario nell'attività pubblica

Il mio attuale DB guarda/memorizza tutto, ma il recipient_id .... si presenta come nullo

#<PublicActivity::Activity id: 108, trackable_id: 133, trackable_type: "Relationship", 
owner_id: 1, owner_type: "User", key: "relationship.create", parameters: {}, 
recipient_id: nil, recipient_type: nil, created_at: "2013-06-16 07:37:28", 
updated_at: "2013-06-16 07:37:28"> 

Vorrei che la recipient_id di essere l'utente che viene eseguita l'azione. ...

Es.

Se mi piace Tom's Post ..... Vorrei che l'ID di Tom diventasse il recipient_id & Sarò il proprietario_id.

Attualmente ho impostato un ID destinatario .... utilizzando il codice nel mio controller Mi piace .... ma imposta solo l'ID destinatario all'utente corrente .... che non è quello che voglio :(

piace questo CONTROLLER

class Like < ActiveRecord::Base 
    include PublicActivity::Model 
    tracked except: :destroy, owner: ->(controller, model) { controller && controller.current_user } 

    **tracked except: :destroy, recipient: ->(controller, model) { controller && controller.current_user }** 

    attr_accessible :dailypost_id, :user_id 

    belongs_to :user 
    belongs_to :dailypost 


    default_scope order: 'likes.created_at DESC' 
end 

ho bisogno di creare un metodo o qualcosa del genere. Si prega di aiutare ..... nuovo alle rotaie

+0

Utilizzare il tag generico Ruby on Rails poiché pochissime persone cercano una domanda relativa a una versione di Rails specifica. – Borodin

risposta

11
tracked recipient: ->(controller, model) { model && model.user } 

assumendo Tom è l'utente dell'oggetto tracciato. In caso contrario, cambiare model.user come da applicazione

+0

grazie:) .... def mi ha indicato nella giusta direzione –

Problemi correlati