加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 3 – ActiveAdmin – 显示ActiveRecord

发布时间:2020-12-16 21:24:48 所属栏目:百科 来源:网络整理
导读:我目前有一个Rails 3.0.10应用程序,我用两个简单的关联模型:has_many和belongs_to. 安装ActiveAdmin插件并创建相应的Ruby资源文件后,我注意到了一些奇怪的行为. 在下面,您可以看到“作业文件”属于“Ernet客户端”.这些关联都正常工作,但显示名称显示为实际
我目前有一个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

似乎所有东西都应该正常运作.

任何人都有任何洞察力如何解决这个问题?

解决方法

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

看起来这是自动调用的方法,就像你在控制台中的其中一个对象上调用to_s一样,你会得到类似的结果.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读