У меня есть сайт rails с пользователями, и эти пользователи могут создавать определенные страницы.Контроллер Rails: аутентификация только для определенных действий
Я пытаюсь сделать эти страницы доступными для просмотра людям, не вошедшим в систему. Итак, я делаю другое представление & действия контроллера для страницы.
В настоящее время единственной проблемой, с которой я столкнулся, является создание контроллера, который имеет одно действие, требующее аутентификации, и другое действие, которое не выполняется, оставаясь на том же контроллере.
То, что я
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
if params[:action] != 'show_public'
before_action :authenticate_user!
skip_before_filter :verify_authenticity_token
end
respond_to :json
def show
@page = Page.new
@current_user = current_user
....
end
def show_public
@page = Page.new
....
end
....
end
Ошибка, которую я в настоящее время получаю:
undefined local variable or method `params' for PagesController:Class
Примечание
Кто-то другой сделал большую часть кода для этого сайта (и с тех пор слева), и я новичок в рельсах. Итак, если я собираюсь решить эту проблему с совершенно неправильным подходом, пожалуйста, дайте мне знать.
Спасибо, есть способ проверки подлинности для всего, кроме show_public? – Rorschach
', за исключением: [: show_public]', конечно. –