我已经从technoweenie安装并实现了插件restful_authentication。
我的申请在很大程度上是打算开放的,除了写评论的情况。
所以我有一个reviews_controller.rb,但我唯一想关心用户是否登录的是他们提交特定动作add_review的时间。
add_review是vendor_controller.rb上的一个操作,因为该表单显示在vendors / show上。然后它重定向回到vendor / show以显示更新(考虑将其更改为ajax)。
如果此人未登录,我希望它重定向到登录/注册页面。
restful_authentication的说明显示在控制器级别应用包含AuthenticatedSystem,但我不想使用该控制器中的其他操作进行身份验证。
我该怎么做?
答案 0 :(得分:4)
将AuthenticatedSystem模块包含在您需要它的控制器中(或者如果您需要多个ApplicationController,则使用它),然后使用仅应用于您想要的操作的before_filter,例如:
class VendorsController < ApplicationController
include AuthenticatedSystem
before_filter :login_required, :only => [:add_review]
end
答案 1 :(得分:0)
我恳请您使用restful create action而不是您自己的add_review操作。在http://guides.rubyonrails.org/routing.html
了解有关restful routing的更多信息