Rails 请教一个 Rails Engine 的验证设计方法

wuwx · May 01, 2013 · Last by losingle replied at May 14, 2013 · 2285 hits

比如有一个 Rails 项目,名为 Weibo 吧(随便叫的)想发 weibo 必定是要登陆的,所以在 Weibo 这个项目里用了 Devise 用作用户认证啥的。

然后写了一个名为 Pinglun 的 Engine,假设是用来看某个 Weibo 评论以及增加评论用的吧:)

想发表一个评论肯定也是要登陆的,开发的时候,在 PInglun 的控制器里使用 before_filter :authenticate_user! 是没有问题的,他会使用主项目 Weibo 的认证。

可是假如是在 Engine 内部进行 rake test 的话,这个时候 :authenticate_user! 就找不到,出问题了……

想问问这种带验证的 Engine 是应该自己验证还是让调用自己的项目验证? 如果是让调用自己的项目去做验证的话,这个测试又应该如何写比较好呢?

"可是假如是在 Engine 内部进行 rake test 的话,这个时候 :authenticate_user! 就找不到,出问题了……" 》》》》报错能具体点不?

任何一个 gem、engine 都应该是自维护的而不依赖它的属主项目,测试也一样。

不太好判断, 初步估计是 dependency 的问题 你的 Pinglun 的 Engine 应该要 dependency 了你的主项目的。

你应该设计一个基础验证,包含在你的 core 里面,一般不要涉及第三方的认证 Gem,然后再通过 engine 去扩展你的认证,这时候再是用第三方的 Gem 比较合适。 因为你加一个 Rails Engine 的时候,基本都会要用到你的认证

You need to Sign in before reply, if you don't have an account, please Sign up first.