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