如何使用public_activity gem(Rails)中的参数值?

雷扎尔(Ryzal Yusoff)

我正在构建一个Rails应用程序。在我的应用中,有些项目用户可以“关注”。当用户关注其中一个页面时,如果有人上载/创建文件夹/文件,则他/她将获得更新。

下面是有人刚创建新文件夹时的屏幕截图:

在此处输入图片说明

以下是“文件夹”控制器中“创建”操作的代码:

 def create
 @folder = current_user.folders.where(project_id: params[:project_id]).create(folder_params)

 respond_to do |format|
  if @folder.save
    @folder.create_activity :create, owner: current_user, :params => {
       :project_id => proc {|controller, project| @folder.project.id},
       :project_name => proc {|controller, project| @folder.project.name},
      }

    format.html { redirect_to @folder.project, notice: 'Folder was successfully created.' }
    format.json { render :show, status: :ok, location: @folder }
  else
    format.html { render :new }
    format.json { render json: @folder.errors, status: :unprocessable_entity }
  end
end

结尾

如您所见当创建新文件夹时,:project_id:project_name是public_activity的参数。

下面是该参数值在保存后在数据库中的样子的屏幕截图:

在此处输入图片说明

问题:

所以我的问题是,如何在我的activity_controller中使用此参数值?

现在是我的活动控制器的代码:

class ActivitiesController < ApplicationController
  def index
    @activities = PublicActivity::Activity.order("created_at desc").where(owner_id: current_user.following_users, owner_type: "User")
  end
end

我不想使用“ owner_id:”,而是要使用参数列中“ project_id”那我该怎么办呢?

非常感谢您!:)

雷扎尔(Ryzal Yusoff)

感谢您的回答,但是我得到了比使用参数值或自定义字段更好的解决方案。这是我的activity_controller现在的样子:

class ActivitiesController < ApplicationController

  def index
    activity_table = PublicActivity::Activity.arel_table

    # We want to view all activity of folders related to projects we are follwing
    folder_ids = Folder.where(project_id: current_user.following_projects.pluck(:id)).pluck(:id)

    # Generate query for all activity related to folders we care about
    folders_query = activity_table[:trackable_type].eq('Folder').and(
         activity_table[:trackable_id].in(folder_ids)
    )

    # Generate query for all users that we follow
    users_query = activity_table[:owner_id].in(current_user.following_users.pluck(:id))

    activity_query = folders_query.or(users_query)
    @activities = PublicActivity::Activity.where(activity_query)
  end
end

通过使用这种方式,我可以轻松地合并来自“用户”以及用户遵循的“项目”中的活动。

您可以修改它以添加任何其他活动,例如来自“评论”或“投票”的活动。

希望这对其他使用public_activity gem的人有所帮助!:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Public_activity gem参数Rails 3

来自分类Dev

如何在public_activity gem中访问current_user?

来自分类Dev

Rails SQL复杂查询public_activity

来自分类Dev

使用public_activity gem显示其他用户在当前用户内容上的活动

来自分类Dev

存根:销毁以删除请求规范中的public_activity记录

来自分类Dev

使用Draper装饰的public_activity宝石

来自分类Dev

Rails 4 public_activity与两种类型的所有者

来自分类Dev

在Rails 4中使用强参数值白名单

来自分类Dev

在Rails 4中使用强参数值白名单

来自分类Dev

如何从Ransack gem为JavaScript上的Ruby on Rails的Ransack gem生成的url参数中获取特定值

来自分类Dev

如何更改枚举中的参数值(Swift)

来自分类Dev

如何在RDLC中设置参数值

来自分类Dev

如何在Racket中返回参数值?

来自分类Dev

如何更改枚举中的参数值(Swift)

来自分类Dev

如何使用Rails中的gem布局?

来自分类Dev

如何使用Struts taglib在链接中传递动态参数值?

来自分类Dev

如何使用Spring MVC在URL中隐藏请求参数值

来自分类Dev

如何从使用中推断出参数值?

来自分类Dev

如何在Rails中调试gem?

来自分类Dev

如何在Rails中检查gem版本

来自分类Dev

如何在F#中设置默认参数值?

来自分类Dev

如何在烧瓶中获取获取请求的参数值?

来自分类Dev

如何在Symfony2中访问嵌套参数值?

来自分类Dev

如何在Autofac的OnActivated处理程序中获取参数值?

来自分类Dev

如何在ember的url中显示默认查询参数值?

来自分类Dev

Url.Action如何从模型中添加参数值

来自分类Dev

如何处理url中的特殊字符作为参数值?

来自分类Dev

如何在构建过程模板中获取参数值

来自分类Dev

Jmeter如何获取路径中的动态参数值

Related 相关文章

热门标签

归档