我目前有一个 Rails 3.0.10 应用程序,我制作了两个具有简单关联的模型:has_many 和 belongs_to。
安装 ActiveAdmin 插件并创建相应的 Ruby 资源文件后,我注意到一些奇怪的行为。
下面,您可以看到“作业文件”属于“Ernet 客户端”。关联都正常工作,但是,显示名称显示为实际的 ActiveRecord 对象而不是客户端名称。
这是“作业文件”部分下的显示视图:
但是,如果我去查看实际的客户端,则会出现正确的文本:
导致此问题的“作业文件”资源中一定有问题,但我无法弄清楚它可能是什么。谷歌搜索后,我发现了这个: http ://groups.google.com/group/activeadmin/browse_thread/thread/2a261e070efa7bae
在 JobFile.register 文件中,我指定了显示名称:
filter :ernet_client, :display_name_methods => :display_name
但是,这不起作用,我循环浏览了所有其他可用的名称,但无济于事。
我查看了 ActiveAdmin 的依赖项,而 sass-rails 似乎是唯一的依赖项——但如果你使用的是 3.1 而我使用的是 Rails 3.0.10。
最后,为了确保我的关联确实有效,我打开了 Rails 控制台并创建了一个作业文件:
job = JobFile.new
=> #<JobFile hash returned>
job.ernet_client_id = 2
=> 2
job.ernet_client.client_name
=> Target
一切似乎都在正常工作。
任何人都对如何解决这个问题有任何见解?