|
|
1
2
之前的过滤方法仍然是一个不错的选择。您可以使用控制器的
对不起,中间那个三元运算符。:)当然,你可以做任何你喜欢的逻辑。 如果愿意,也可以使用方法,如果方法失败,则通过显式返回来避免双重渲染。这里的关键是返回,这样就不会进行双重渲染。
您可以通过将不同的行为部分(授权、处理糟糕的授权)拆分如下(在我看来),进一步简化它:
就我个人而言,我更喜欢将所有这些例行工作卸载到一个插件上。我个人最喜欢的授权插件是 Authorization . 在过去的几年里,我用它取得了巨大的成功。 这将重构控制器以使用以下变量:
|
|
|
2
1
简单的答案是将信息改为既适合这两种情况的信息:“你不能干扰其他作者的帖子。” |
|
|
3
1
如果您不喜欢最后一个解决方案中难看的*返回,那么您可以使用around过滤器,并且只有在用户获得授权的情况下才有条件地生成。
*--这是我的偏好,尽管从代码上看它是完全有效的。我只是觉得这个款式不合适。 我还应该补充说,我还没有测试过这个,也不是百分之百确定它会起作用,尽管它应该很容易尝试。 |