ruby-on-rails - 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'
任何想法我如何解决这个问题
解决方案
由于charged?
它是对象的方法而不是属性,因此您可以这样配置它:
field :charged do
formatted_value do
bindings[:object].charged?
end
label do
'Charged?'
end
end
推荐阅读
- python - 如何将符号表达式转换为 Python 中的浮点数?
- python - ipywidgets 布局,垂直对齐框?
- shell - 使用 ansible 检查文件中的序列
- sql - SQL Server:从一个表中复制新添加的行并自动插入到另一个表中
- google-apps-script - 是否可以在提交 Google 表单时启动 OAuth 2 流程?
- python - 为什么 Python 中会出现 Wordcloud 错误?
- r - 将一列数字转换为日期时间
- mysql - 如何获取至少有 1 个关联行与 sequelize 的行
- javascript - CSS 动画只工作一次,之后就不再工作
- node.js - Express Js中基于角色的路由器