ActiveAdmin 仪表板中的格式问题
Formatting issue in ActiveAdmin dashboard
我在使用 ActiveAdmin 将正确信息提取到仪表板列时遇到问题。如果有人能帮我解决这个问题,我将不胜感激。
我遇到的问题是保留来自与我正在显示的当前记录相关的 class 的数据(下面的第 6 行)。
这是我创建的专栏:
column do
panel "Recent Beacons" do
table_for Beacon.limit(20) do
column("Mac address") { |b| link_to b.mac_address, admin_beacon_path(b) }
column "Last seen", :updated_at
column("House") { |b| link_to b.root_house, admin_house_path(b.root_house.id) }
column("Status") { |b| b.online? ? status_tag('Online', :green) : status_tag('Offline', :red) }
end
end
end
使用 binding.pry 我能够执行 b.meters.pop.circuit.root
和 return 我正在寻找的正确值。然而,ActiveAdmin 不喜欢这样,页面错误如下 undefined method circuit for nil:NilClass
。为了稍微清理一下代码,我写了一个 root_house
方法。
def root_house
meters.pop.circuit.root
end
ActiveAdmin 让我有点困惑,非常感谢任何帮助。
谢谢!
这里有一个肮脏的修复,如你所愿重构:
def root_house
if meters && meters.pop && meters.pop.circuit
meters.pop.circuit.root
else
'object is not present'
end
end
所以我只会在 meters
和 meters.pop
并且 meters.pop.ciruit
不为零时调用 meters.pop.circuit.root
。
Google null object pattern and law of Demeter ruby 更清晰的解决方案,您也可以使用 delegate
方法,this 可能会有帮助。
我在使用 ActiveAdmin 将正确信息提取到仪表板列时遇到问题。如果有人能帮我解决这个问题,我将不胜感激。
我遇到的问题是保留来自与我正在显示的当前记录相关的 class 的数据(下面的第 6 行)。
这是我创建的专栏:
column do
panel "Recent Beacons" do
table_for Beacon.limit(20) do
column("Mac address") { |b| link_to b.mac_address, admin_beacon_path(b) }
column "Last seen", :updated_at
column("House") { |b| link_to b.root_house, admin_house_path(b.root_house.id) }
column("Status") { |b| b.online? ? status_tag('Online', :green) : status_tag('Offline', :red) }
end
end
end
使用 binding.pry 我能够执行 b.meters.pop.circuit.root
和 return 我正在寻找的正确值。然而,ActiveAdmin 不喜欢这样,页面错误如下 undefined method circuit for nil:NilClass
。为了稍微清理一下代码,我写了一个 root_house
方法。
def root_house
meters.pop.circuit.root
end
ActiveAdmin 让我有点困惑,非常感谢任何帮助。
谢谢!
这里有一个肮脏的修复,如你所愿重构:
def root_house
if meters && meters.pop && meters.pop.circuit
meters.pop.circuit.root
else
'object is not present'
end
end
所以我只会在 meters
和 meters.pop
并且 meters.pop.ciruit
不为零时调用 meters.pop.circuit.root
。
Google null object pattern and law of Demeter ruby 更清晰的解决方案,您也可以使用 delegate
方法,this 可能会有帮助。