如何使用私人提交来隐藏Feed?

在评估表单中,有一个提交按钮和一个按钮。 如果单击私人提交,则提交的信息将隐藏给查看该个人资料的其他用户。

我们如何使用来隐藏提交的信息以显示在Feed上?

活动/ index.html.erb

 

Feed

#We'd need to make .public_valuations work with this without getting an undefined method error.

activities_controller.rb

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

为简洁起见,我只会包含_create (还有updatedestroy )。 每次用户提交评估时,它都会在Feed上弹出,我们怎样才能显示public_valuations

public_activity /评估/ _create.html.erb

    which has since been removed  

valuation.rb

 class Valuation (controller, model) { controller && controller.current_user } def public? private == true ? false : true end scope :randomize, -> do order('RANDOM()'). take(1) end end 

users_controller

  def show if @valuations = @user.valuations else @valuations = @user.public_valuations end end 

user.rb

 #gets public valutations or nil, if there's no public valutation def public_valuations valuations.find(&:public?) end 

我从这个railscasts剧集中获得了几乎所有的活动代码: http ://railscasts.com/episodes/406-public-activity。

这就是我们如何为配置文件进行私有提交工作: 如何使用私有提交来隐藏配置文件?

非常感谢您的参与!

UPDATE

由于我们无法通过public_activity gem解决问题,因此我从头开始创建公共活动,并尝试在此处解决此问题: 如何进行私人活动?

失败的尝试

在Avdept的建议:

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

valuations.rb

 def public? !private end => def public?; !private; end; scope :not_private, -> { where(private: false) } 

这给出了:

 SyntaxError in ActivitiesController#index (for line: def public? !private end => def public?; !private; end;) /Users/galli01anthony/Desktop/Pecoce/app/models/valuation.rb:9: syntax error, unexpected '!', expecting ';' or '\n' def public? !private end => def public?; !private; end; ^ /Users/galli01anthony/Desktop/Pecoce/app/models/valuation.rb:9: syntax error, unexpected =>, expecting end-of-input def public? !private end => def public?; !private; end; ^