【问题标题】:NameError (uninitialized constant ...) in spree gem rails狂欢宝石导轨中的NameError(未初始化的常量......)
【发布时间】:2015-11-01 06:54:52
【问题描述】:

我定义了一个控制器: spree/admin/payment_members_controller.rb

module Spree
  module Admin
    class PaymentMembersController < ResourceController
      def index
      end 
    end
  end
end

在文件配置/路由中

Spree::Core::Engine.routes.append do
  namespace :admin do
    resources :payment_members
  end
end

路线:

admin_payment_members_path  GET  /admin/payment_members(.:format)   spree/admin/payment_members#index
                            POST /admin/payment_members(.:format)   spree/admin/payment_members#create
new_admin_payment_member_path   GET /admin/payment_members/new(.:format)    spree/admin/payment_members#new
edit_admin_payment_member_path  GET /admin/payment_members/:id/edit(.:format)   spree/admin/payment_members#edit
admin_payment_member_path   GET /admin/payment_members/:id(.:format)    spree/admin/payment_members#show
                            PATCH   /admin/payment_members/:id(.:format)    spree/admin/payment_members#update

当我在浏览器中访问网址“http://localhost:3000/admin/payment_members”(索引)时: 在控制台中:

Processing by Spree::Admin::PaymentMembersController#index as HTML
NameError (uninitialized constant Spree::PaymentMember):
  activesupport (4.1.6) lib/active_support/inflector/methods.rb:253:in `const_get'
  activesupport (4.1.6) lib/active_support/inflector/methods.rb:253:in `block in constantize'
  ..........

请告诉我,如何解决这个错误?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-3.2


    【解决方案1】:

    它会根据您在ResourceController 中使用before_filter 的控制器名称尝试load the resource。你创建了Spree:: PaymentMember吗?

    我的建议是你要么创建Spree::PaymentMember(app/models/spree/payment_member.rb) 要么覆盖PaymentMembersController 中的load_resource 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      • 2015-01-19
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多