Ruby on rails Rails验证,使某些内容在活动时不可编辑

Ruby on rails Rails验证,使某些内容在活动时不可编辑,ruby-on-rails,Ruby On Rails,我正试着让我的头脑清醒过来。到目前为止,我有这个 def live person.live end 然而,我不知道在这之后该怎么办,用户有一个按钮可以点击,让那里的人活下来。将数据库中的值从false更改为true 然后,他们有一个链接,可以编辑此处的用户 /people/{{person.id}}/edit 我如何使其在活动直播后用户无法访问链接(通过在浏览器中键入链接) 谢谢我建议使用某种授权gem。就我个人而言,我使用 在那里,您可以指定用户可以访问什么,不可以访问什么

我正试着让我的头脑清醒过来。到目前为止,我有这个

  def live
    person.live
  end
然而,我不知道在这之后该怎么办,用户有一个按钮可以点击,让那里的人活下来。将数据库中的值从false更改为true

然后,他们有一个链接,可以编辑此处的用户

/people/{{person.id}}/edit
我如何使其在活动直播后用户无法访问链接(通过在浏览器中键入链接)


谢谢

我建议使用某种授权gem。就我个人而言,我使用

在那里,您可以指定用户可以访问什么,不可以访问什么,以及应该重定向到哪里等

在Ability.rb中指定此选项

can :update, Person, :live => false
在控制器中使用此

authorize! :edit, @person
在视图中,您可以使用如下内容

<% if can? :update, @person%>
  <%= link_to "Edit", edit_person_path(@person) %>
<% end %>

“如何使事件直播后用户无法访问链接(通过在浏览器中键入链接)。”

您可以使用过滤器检查
live
字段是否为true。比如:

控制器:

before_action :check_if_live_true

private

def check_if_live_true
    if live_field.true?
        redirect_to some_path
    end
end
如果
live
字段为true,则会重定向,然后有人输入匹配的URL