You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新增Redmine自定义路由、视图及控制器方法后访问返回403错误

问题原因

你遇到的403错误是Redmine的权限校验机制导致的。Redmine的IssuesController默认配置了:authorize前置过滤器,所有自定义新增的动作如果没有被加入权限白名单、也没有声明对应权限规则,就会被过滤器直接拦截,日志中的Filter chain halted as :authorize rendered or redirected已经明确指向这个问题。

解决方案

按以下步骤操作即可修复:

  • 第一步:给自定义动作配置权限规则
    打开app/controllers/issues_controller.rb,给新增的edit_realtime动作声明和原生edit动作一致的权限:
# 找到控制器顶部的权限声明代码段,在edit动作的权限配置旁新增edit_realtime
# 如果是用authorize_resource配置,修改如下
authorize_resource except: [:index, :show, :edit, :edit_realtime, :update]
# 同时显式指定动作对应的权限,和edit复用:edit_issues权限
permission :edit_realtime, { issues: [:edit_realtime] }, require: :member, require: :edit_issues

如果你的版本是用allowed_actions方法声明可用动作,新增如下代码:

def self.allowed_actions
  super + [:edit_realtime]
end
  • 第二步:调整路由优先级
    确认你在routes.rb中新增的get '/issues/:id/edit_realtime', :to => 'issues#edit_realtime'路由,放在resources :issues配置的前面,避免被Redmine默认的issues路由覆盖。
  • 第三步:修正视图目录命名(可选排查点)
    你当前的视图放在app/views/issue目录下,Redmine的issues对应视图目录是复数形式app/views/issues,如果目录名错误也会导致后续访问异常,建议核对修正。
  • 第四步:重启Redmine服务
    修改控制器和路由配置后需要重启服务,让配置生效。

内容的提问来源于stack exchange,提问作者al1ssicone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 13:30:03