restful_authentication仅应用于控制器内的动作?

时间:2009-04-09 01:47:17

标签: ruby-on-rails restful-authentication

我已经从technoweenie安装并实现了插件restful_authentication。

我的申请在很大程度上是打算开放的,除了写评论的情况。

所以我有一个reviews_controller.rb,但我唯一想关心用户是否登录的是他们提交特定动作add_review的时间。

add_review是vendor_controller.rb上的一个操作,因为该表单显示在vendors / show上。然后它重定向回到vendor / show以显示更新(考虑将其更改为ajax)。

如果此人未登录,我希望它重定向到登录/注册页面。

restful_authentication的说明显示在控制器级别应用包含AuthenticatedSystem,但我不想使用该控制器中的其他操作进行身份验证。

我该怎么做?

2 个答案:

答案 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的更多信息