首页 > 解决方案 > Rails_admin 错误从 0.6.3 升级到 1.4 后实例变量名不允许

问题描述

错误:`@charged?_registered' 不允许作为实例变量名

将 rails admin 升级到最新版本后,我收到此错误,它之前运行良好。它向我显示了此代码片段中的错误。

scope :charged, -> { where.not(charge_transaction: nil) }

  rails_admin do
    object_label_method do
      :uuid
    end
    list do
      sort_by :campaign
      # filters [:campaign, :uuid]
      field :uuid
      field :campaign do
        searchable [:id, :product_name]
      end
      field :user do
        searchable [:email, :handle, { :orders => :full_name }]
      end
      field :full_name
      field :charged?
      field :shipment_id?
      scopes [nil, :currently_open, :charged, :campaign_funded_not_charged, :label_not_created, :paid_and_shipped]
    end
    configure :created_at do
      show
    end
    configure :updated_at do
      show
    end
  end

  def charged?
    return !self.open?
  end

这是我的控制台输出:

NameError - `@charged?_registered' is not allowed as an instance variable name:
rails_admin (1.4.2) lib/rails_admin/config/has_fields.rb:12:in `field'
app/models/order.rb:269:in `block (2 levels) in <class:Order>'
rails_admin (1.4.2) lib/rails_admin/config/sections.rb:30:in `block (2 levels) in included'
app/models/order.rb:258:in `block in <class:Order>'
rails_admin (1.4.2) lib/rails_admin/config/lazy_model.rb:53:in `block in target'
rails_admin (1.4.2) lib/rails_admin/config/lazy_model.rb:53:in `target'
rails_admin (1.4.2) lib/rails_admin/config/lazy_model.rb:60:in `method_missing'
rails_admin (1.4.2) lib/rails_admin/config.rb:352:in `block in visible_models_with_bindings'
rails_admin (1.4.2) lib/rails_admin/config.rb:352:in `visible_models_with_bindings'
rails_admin (1.4.2) lib/rails_admin/config.rb:320:in `visible_models'

任何想法我如何解决这个问题

标签: ruby-on-railsrails-admin

解决方案


由于charged?它是对象的方法而不是属性,因此您可以这样配置它:

field :charged do
  formatted_value do
    bindings[:object].charged?
  end
  label do
    'Charged?'
  end
end

推荐阅读