0

我想用 intercom-rails gem 设置自定义数据属性。在UserController#sign_up我有intercom_custom_data.user[:sign_up] = true但没有创建变量。我尝试在其他控制器(TruckController#edit)中,如果它被创建。

用户控制器.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: "user@email.com", encrypted_password: "aebvcbb5c..."
      intercom_custom_data.user[:sign_up] = true
    end
  end
end

卡车控制器.rb

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

1 回答 1

0

我会在我的 User 模型中添加一个字段signed_up,这样您就可以以任何您想要的方式对其进行更改。

现在,转到 config/initializers 中的 intercom.rb 配置文件,并将自定义数据字段添加到您的用户模型:

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

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

之后您应该会在对讲机中看到该字段。

于 2016-03-03T07:33:41.593 回答