【问题标题】:how to get the recipient_id using this PublicActivity ruby gem?如何使用此 PublicActivity ruby​​ gem 获取接收者 ID?
【发布时间】:2013-04-30 03:23:57
【问题描述】:

我正在使用 PublicActivity gem,它是在我的数据库中创建的

schema.db

create_table "activities", :force => true do |t|
    t.integer  "trackable_id"
    t.string   "trackable_type"
    t.integer  "owner_id"
    t.string   "owner_type"
    t.string   "key"
    t.text     "parameters"
    t.integer  "recipient_id"
    t.string   "recipient_type"
    t.datetime "created_at",     :null => false
    t.datetime "updated_at",     :null => false
  end

我可以通过在 post.rb 模型中使用它来跟踪我网站内发生的所有帖子

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

通过这样做,我可以获得 owner_id。我需要设置什么recipient: 以使其获取价值?现在 recipient_id 为 nil。

我想最终在我的视图中使用类似 &lt;%= link_to activity.recipient_id.name %&gt; 的东西来获取进行活动的收件人的姓名

我正在尝试将其设置为 post_id 或 user_id,但我收到未定义的局部变量或方法错误。

这是我正在跟踪的模型的表格

create_table "postcomments", :force => true do |t|
    t.text      "content"
    t.integer   "user_id"
    t.integer   "post_id"
    t.timestamp "created_at",      :null => false
    t.timestamp "updated_at",      :null => false
    t.text      "comment_content"
  end

【问题讨论】:

  • recipient 是什么?
  • @nextstep 你有没有想过这个......我也在尝试设置收件人 ID

标签: ruby-on-rails ruby rubygems


【解决方案1】:

我把这个放在模型里

假设receiver_id 是被跟踪对象的用户。否则根据您的应用程序更改 model.user

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多