интерком-рельсы: установите некоторые пользовательские атрибуты данных, специфичные для действия

Я хочу установить пользовательский атрибут данных с помощью драгоценного камня интерком-рельс. В UserController#sign_up у меня есть intercom_custom_data.user[:sign_up] = true, но переменная не создается. Пробую в другом контроллере (TruckController#edit) и если он создан.

user_controller.rb

class UserController < ApplicationController                                                                                                                                                                                                               
  skip_before_filter :check_admin
  skip_before_filter :authenticate_user!, except: [:recovery]
  skip_before_filter :verify_authenticity_token

  def sign_up
    ...
    if user.save
      puts current_user.inspect 
      # <User id: 11, username: "user", email: "[email protected]", encrypted_password: "aebvcbb5c..."
      intercom_custom_data.user[:sign_up] = true
    end
  end
end

truck_controller.rb

TruckController < ApplicationController
  def index
    puts current_user.inspect 
    # <User id: 11, username: "user", email: "[email protected]", encrypted_password: "aebvcbb5c..."
    intercom_custom_data.user[:sign_up] = true
  end
end

person kalelc    schedule 09.12.2015    source источник


Ответы (1)


Я бы добавил в свою модель пользователя поле signed_up, чтобы вы могли изменять его по своему усмотрению.

Теперь перейдите к файлу конфигурации intercom.rb в config/initializers и добавьте пользовательское поле данных в свою модель пользователя:

IntercomRails.config do |config|
  ...
  config.user.model = Proc.new { YourUserModelClass }

  config.user.custom_data = {
    :sign_up=> Proc.new { |user| user.signed_up }
  }
  ...
end

Вы должны увидеть поле в Intercom после.

person Guj Mil    schedule 03.03.2016