1

我已经安装并实现了来自 technoweenie 的插件 restful_authentication。

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

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

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

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

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

我该怎么做呢?

4

2 回答 2

4

将 AuthenticatedSystem 模块包含在您需要它的控制器中(或 ApplicationController,如果您需要它不止一个),然后使用 before_filter 仅应用于您想要的操作,例如:

class VendorsController < ApplicationController
  include AuthenticatedSystem
  before_filter :login_required, :only => [:add_review]
end
于 2009-04-09T02:54:42.633 回答
0

我恳请您使用 restful create 操作而不是您自己的 add_review 操作。阅读更多关于 RESTful 路由的信息:http: //guides.rubyonrails.org/routing.html

于 2009-04-09T05:41:40.157 回答