ruby-on-rails - Rails 3-ActiveAdmin-显示ActiveRecord对象而不是文本

标签 ruby-on-rails ruby-on-rails-3 activeadmin

我目前有一个Rails 3.0.10应用程序,我用简单的关联创建了两个模型:has_many和belongs_to。

安装ActiveAdmin插件并创建相应的Ruby资源文件后,我注意到了一些奇怪的行为。

在下面,您可以看到“作业文件”属于“Ernet客户端”。关联都正常工作,但是,显示名称显示为实际的ActiveRecord对象,而不是客户端名称。

在“作业文件”部分下,这是显示 View :

但是,如果我去查看实际的客户端,则会显示正确的文本:

导致此问题的“作业文件”资源一定有问题,但是我不知道这可能是什么。谷歌搜索后,我发现了这个: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

一切似乎都按预期进行。

任何人都对如何解决这个问题有任何见解?

最佳答案

您是否尝试在to_s模型上定义ErnetClient方法?

def to_s
  display_name
end

看起来这是被自动调用的方法,好像您在控制台中对这些对象之一调用了to_s一样,您将获得类似的结果。

关于ruby-on-rails - Rails 3-ActiveAdmin-显示ActiveRecord对象而不是文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7941948/

相关文章:

ruby-on-rails - 如何使用 ruby​​ pg gem 列出 postgresql 数据库?

ruby-on-rails - ElasticSearch 评分(轮胎 gem )

javascript - 如何在移动设备中加载特定的 jquery 代码

ruby - 如何将参数传递给 rspec 中的主题

ruby-on-rails - 事件管理员日期过滤器日期格式自定义

jquery - 使用 Capybara/Cucumber 单击链接

mysql - 合并同一个表中具有相同列值的 2 条记录

ruby-on-rails - 在主页上创建自定义 Rails 错误部分

ruby - 如何在 activeadmin 下拉菜单中显示模型标题而不是#<Mymodel :0x000000. ..>?

devise - 使用 Active Admin 和 Devise 进行 401 重定向循环