Ruby on rails Rails控制器:仅对某些操作进行身份验证
我有一个有用户的rails站点,这些用户可以创建某些页面 我正试图让那些页面对未登录的人可见。因此,我正在为页面执行另一个视图和控制器操作 目前,我唯一的问题是制作一个控制器,其中一个操作需要身份验证,而另一个操作不需要身份验证,同时保持在同一个控制器上 我拥有的Ruby on rails Rails控制器:仅对某些操作进行身份验证,ruby-on-rails,Ruby On Rails,我有一个有用户的rails站点,这些用户可以创建某些页面 我正试图让那些页面对未登录的人可见。因此,我正在为页面执行另一个视图和控制器操作 目前,我唯一的问题是制作一个控制器,其中一个操作需要身份验证,而另一个操作不需要身份验证,同时保持在同一个控制器上 我拥有的 class PageController < ApplicationController before_action :authenticate_user! skip_before_filter :verify_
class PageController < ApplicationController
before_action :authenticate_user!
skip_before_filter :verify_authenticity_token
respond_to :json
def show
@page = Page.new
....
end
....
end
注意
class PageController < ApplicationController
before_action :authenticate_user!
skip_before_filter :verify_authenticity_token
respond_to :json
def show
@page = Page.new
....
end
....
end
其他人为这个站点编写了大部分代码(后来离开了),我是rails新手。因此,如果我打算用完全错误的方法解决这个问题,请告诉我。您可以这样做:
before_action :authenticate_user!, only: [:show]
skip_before_action :require_login, only: [:show]
因此,这将仅在show
操作上运行。有时,您需要在所有设备上运行,并留下一个设备,以便:
before_action :authenticate_user!, except: [:show]
因此,它不会在show
上运行,而是在所有其他操作上运行。假设您的在\u操作之前
在应用程序控制器中,您需要在继承的控制器中跳过,您可以这样做:
before_action :authenticate_user!, only: [:show]
skip_before_action :require_login, only: [:show]
您可以这样做:
before_action :authenticate_user!, only: [:show]
skip_before_action :require_login, only: [:show]
因此,这将仅在show
操作上运行。有时,您需要在所有设备上运行,并留下一个设备,以便:
before_action :authenticate_user!, except: [:show]
因此,它不会在show
上运行,而是在所有其他操作上运行。假设您的在\u操作之前
在应用程序控制器中,您需要在继承的控制器中跳过,您可以这样做:
before_action :authenticate_user!, only: [:show]
skip_before_action :require_login, only: [:show]
谢谢,有没有办法对除show_public之外的所有内容进行身份验证?谢谢,有没有办法对show_public之外的所有内容进行身份验证?