首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionView::Template::Error (用于nil:NilClass的未定义方法`page_param‘)

ActionView::Template::Error (用于nil:NilClass的未定义方法`page_param‘)
EN

Stack Overflow用户
提问于 2016-02-17 14:17:14
回答 1查看 1.3K关注 0票数 2
代码语言:javascript
复制
>Environment:
  >>Redmine version                3.1.3.stable
  >>Ruby version                   2.1.5-p273 (2014-11-13) [x86_64-linux-gnu]
  >>Rails version                  4.2.5
  >>Environment                    production
  >>Database adapter               Mysql2

>SCM:
  >>Subversion                     1.8.10 
  >>Git                            2.1.4
  >>Filesystem                     
  >>Xitolite                       2.1.4
>Redmine plugins:
  >>ckeditor                       
  >>clipboard_image_paste          1.9
  >>easy_cocoon                    
  >>easy_extensions                2014.06.05
  >>easy_alerts                    2014
  >>easy_attendances               2014
  >>easy_budgetsheet               2014
  >>easy_calculation               2014
  >>easy_contacts                  2014
  >>easy_crm                       2014
  >>easy_helpdesk                  2014
  >>easy_instant_messages          2014
  >>easy_knowledge                 2014
  >>easy_money                     2014
  >>easy_printable_templates       2014
  >>easy_project_attachments       2014
  >>easy_quick_project_planner     2014
  >>easy_redmine                   
  >>easy_theme_designer            2014
  >>easy_to_do_list                2014
  >>easy_user_allocations          2014
  >>easy_xml_helper                2014
  >>easy_baseline                  2014
  >>easy_gantt                     2016.01.1000
  >>easy_gantt_pro                 2016-RC1.0
  >>redmine_bootstrap_kit          0.2.4
  >>redmine_git_hosting            1.2.0

误差

代码语言:javascript
复制
Started GET "/redmine/users" for 192.168.50.1 at 2016-02-17 14:35:41 +0100
Processing by UsersController#index as HTML
  Current user: admin (id=1)
  Rendered plugins/redmine_git_hosting/app/views/users/index.html.erb within layouts/admin (13.7ms)
Completed 500 Internal Server Error in 49ms (ActiveRecord: 3.7ms)

ActionView::Template::Error (undefined method `page_param' for nil:NilClass):
53:   </tbody>
54: </table>
55: </div>
56: <p class="pagination"><%= pagination_links_full @user_pages, @user_count %></p>
57:
58: <% html_title(l(:label_user_plural)) -%>
lib/redmine/pagination.rb:157:in `pagination_links_full'
lib/redmine/sudo_mode.rb:63:in `sudo_mode'

采取的步骤:安装红地雷(一切正常)安装易用雷丁(一切正常)安装Gitolite3 (一切正常)安装Git_hosting_plugin 1.2.0 (哎哟)

我遵循了插件的入门指南。我的老板希望PassengerUser是红色的,所以我建立了红色的用户帐户。红矿用户可以通过SSH与海泡石进行通信。我也没有任何麻烦地设置了sudoers.d/redmine。

一切一开始似乎都正常工作,登录到localIP/redmine可以工作,为红矿用户配置乘客。

我的问题是,当我访问红/用户页面时,它会给出上面描述的错误,写入到production.log中。我不知道为什么page_param是未定义的,也不知道pagination_links_full出了什么问题。我不想修改红宝石文件,因为预期的麻烦时,更新在以后的时间点。

我对在linux环境上安装redmine和其他程序很陌生,对UNIX系统的经验也不多,尽管我可以说,day.It使我的理解增长了很多,这可能是一个nooby错误。可能是个窃听器。这可能是版本中的不匹配,其中方法的版本A用于调用另一段代码的稍后改进版本。这可能是,信息必须从某处获取,而红矿安装正在试图获取信息,而没有适当的配置。

如果我不得不猜测,我最好的猜测是,ruby分页文件与配置的其余部分不兼容,应该被另一个版本所取代。

请有人向我解释一下这里出了什么问题,或者如何解决这个问题(或者最好两者兼而有之)。

会很感激的。

雷尼尔

更新(18/02/2016):通过编辑模板,用户页面可以再次访问。<= pagination_links_full @user_pages,@user_count %>

但是,这是一个肮脏的临时修复,如果用户数量超过一个页面,就会产生问题。谁能帮我找到一个永久的解决方案?

@Jkraemer (2016年2月19日)

非常感谢你的反馈。现在,我没有任何额外的时间来解决这个问题,但我看了一下你写的东西。顺便说一句,从easy_开始的任何插件都是一个标准的easyredmine,所以插件列表比它看起来的要小。

具有用户/index.html.erb文件的目录:

代码语言:javascript
复制
  >/opt/redmine/redmine-3.1.3/app/views/users/index.html.erb
  >/opt/redmine/redmine-3.1.3/plugins/easyproject/easy_plugins/easy_extensions/app/views/users/index.html.erb
  >/opt/redmine/redmine-3.1.3/plugins/redmine_git_hosting/app/views/users/index.html.erb
  >/var/lib/gems/2.1.0/gems/redmine_extensions-0.0.20/spec/redmine/app/views/users/index.html.erb

排名前两位的是红矿和易红,它们在安装redmine_git_hosting插件之前工作得很好。底部似乎是一个标准的redmine_extensions宝石。

如果我必须做一个比以前更有教养的猜测,我会说,再加上这个问题没有发生在其他安装中,redmine_git_hosting插件似乎是罪魁祸首,或者至少会引起与红雷和/或易红雷有关的问题。它也是在redmine托管目录和文件中,我通过修改模板文件实现了脏的修复,临时“修复”了这个问题。有趣的是,一段简单的代码可以确定要显示多少页的用户,这基本上是过时的,除非您的红矿环境有超过一页的用户,才会导致整个用户管理界面被禁用。

这个插件似乎确实修补了UsersController: UsersController

我修改的模板是错误日志中的模板,因此它已经被构造为使用@user_pages。我还没有抽出时间深入挖掘用户控制器。您认为修改Users来设置变量、测试它是否以这种方式工作、然后向redmine_git_hosting插件的作者报告问题和提出的解决方案是最好的方法吗?

西德诺特:你说这两者都有,但在这种情况下,这不值得向三方提及吗?(红/易红/红_吉特_托管)一个人如何去报道这样的事情?是在他们的论坛上发个帖子,还是给公司发一封电子邮件?我可以想出很多方法来报告这件事,但我不熟悉这样的程序,也不知道是否有一种标准的方法,除了明显的可能的沟通方式之外。我也不知道我是否应该在没有易用红胺的情况下对它进行测试,然后再将它报告给红霉素。如果我在红矿工作,我会很感激任何有关插件可能出现的问题的提示,这样我就可以存档潜在的问题,并测试它是否也适用于红宝石。从我老板的角度来看,我不认为他对分配时间感兴趣,他必须付出代价才能弄清楚事情的真相。

再次感谢你让别人的大脑来挑选。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-19 05:34:05

根据错误消息,当呈现视图时,我会说@user_pages为零。看看app/controllers/users_controller.rb,情况就不应该是这样了,因为它是在索引操作中设置的。因此,下一步将是找出您的插件是否覆盖/修补程序UsersController#index,或者以其他方式处理@user_pages实例变量。

一个疯狂的猜测是,您安装的另一个插件带来了自己版本的UsersController#index (不设置@user_pages),以及自己版本的users/index.html.erb模板(不需要@user_pages)。这本身就已经够糟糕的了,但是在您安装git托管插件之前,一切都可能正常工作,它也带来了自己版本的users/index.html.erb (它再次需要@user_pages,就像核心红矿山的原始users/index.html.erb一样),事情就出了问题。

因此,go和grep --插件文件夹中用于“UsersController”的任何Ruby代码--检查重写的索引操作,并查找名为users/index.html.erb的文件。如果我的猜测是正确的,而你发现另一个令人反感的插件,向两个插件的作者报告这个问题。直到他们中至少有一个修复了他们的插件,坚持你肮脏的黑客,希望没有其他隐藏的问题(考虑到你的插件列表不太可能),或者决定扔掉至少一个相互冲突的插件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35459165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档