restful_authentication применяется только к действию внутри контроллера? - PullRequest
1 голос
/ 09 апреля 2009

Я установил и внедрил плагин restful_authentication от technoweenie.

Моя заявка, по большей части, должна быть открытой, за исключением, скажем, написания отзыва.

Итак, у меня есть reviews_controller.rb, но я хочу поинтересоваться, вошел ли пользователь в систему или нет, когда он отправляет определенное действие add_review.

add_review - это действие на vendor_controller.rb, потому что форма отображается на vendors / show. Затем он перенаправляет обратно к продавцу / шоу, чтобы показать обновление (думая об изменении его на ajax).

Если человек НЕ вошел в систему, я хочу, чтобы он перенаправил на страницу входа / регистрации.

Инструкции для restful_authentication показывают применение include AuthenticatedSystem на уровне контроллера, но я не хочу проходить аутентификацию с другими действиями в этом контроллере.

Как мне это сделать?

Ответы [ 2 ]

4 голосов
/ 09 апреля 2009

Включите модуль AuthenticatedSystem в контроллер, для которого он нужен (или ApplicationController, если он нужен более чем для одного), а затем используйте before_filter, примененный только к нужным действиям, например ::

class VendorsController < ApplicationController
  include AuthenticatedSystem
  before_filter :login_required, :only => [:add_review]
end
0 голосов
/ 09 апреля 2009

Я умоляю вас использовать успокаивающее действие создания, а не ваше собственное действие add_review. Узнайте больше о маршрутизации отдыха на: http://guides.rubyonrails.org/routing.html

...