ruby-on-rails - Ruby on Rails - Active Admin 未定义的方法“除了”#
问题描述
当我将一些代码放入 application_controller.rb 时,我在 Active Admin 中遇到错误。错误是(当我尝试在活动管理员中访问 HomeConfig 时):
undefined method 'except' for #<HomeConfig:0x007f8877cfda58>
在这种情况下,当我将此代码放入 application_controller.rb 时会发生错误:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
# Code that cause the problem
before_filter :contact_info, :home_config
def contact_info
@contact_infos = ContactInfo.all
end
def home_config
@home_configs = HomeConfig.last
end
end
以及终端中的错误日志:
Started GET "/alumni/admin/home_configs" for 127.0.0.1 at 2018-10-02 09:07:38 -0300
Processing by Admin::HomeConfigsController#index as HTML
HomeConfig Load (0.4ms) SELECT `home_configs`.* FROM `home_configs` ORDER BY `home_configs`.`id` DESC LIMIT 1
AdminUser Load (0.3ms) SELECT `admin_users`.* FROM `admin_users` WHERE `admin_users`.`id` = 1 ORDER BY `admin_users`.`id` ASC LIMIT 1
Rendered /Users/Atua/.rvm/gems/ruby-2.1.3@facensAlumni/bundler/gems/activeadmin-dce083189c46/app/views/active_admin/resource/index.html.arb (598.9ms)
Completed 500 Internal Server Error in 644ms
NoMethodError - undefined method `except' for #<HomeConfig:0x007f887c002d58>:
Started POST "/__better_errors/32ad65699eb25cf6/variables" for 127.0.0.1 at 2018-10-02 09:07:39 -0300
ContactInfo Load (0.3ms) SELECT `contact_infos`.* FROM `contact_infos`
如果我撤回此代码并重新启动服务器,一切正常。有谁知道发生了什么?
谢谢。
解决方案
@home_configs = HomeConfig.last
这是造成错误。ActiveAdmin
期望@home_configs
是一个数组。虽然您的代码HomeConfig.last
仅返回最后一个 HomeConfig。
您需要更改HomeConfig.last
为:HomeConfig.all
.
尝试并反馈。
推荐阅读
- javascript - setTimeout 同时显示元素没有按预期破坏
- c# - 在部署到服务器时,无法在 C# Ajax 应用程序中下载文件。在本地运行很好,没有问题
- excel - 如果 F 列包含特定文本,则从 C 列中提取值
- javascript - 如何从 Flask Web 服务器设置 cookie
- vue.js - Vue CLI 3 / Webpack 生产版本不适用于旧浏览器:如何添加浏览器支持?
- reactjs - 使用 Electron、React 检查渲染器进程中是否存在文件夹
- swift - 尝试启动 UIViewController 和 MapKit
- python - 如何对包含字符串类型和 np.nan 的 numpy 数组进行排序
- python - 变量的 tkinter 问题不会向上、向下或重置
- scala - 如何修复“'java.lang.NoClassDefFoundError: scala/Product$class' 错误,而 flatMapping DataStream 到 Apache Flink 中的案例类”