【问题标题】:Overriding to_s in rails model... possible?在 rails 模型中覆盖 to_s ......可能吗?
【发布时间】:2011-12-03 19:21:39
【问题描述】:

我有这个模型

class Question < ActiveRecord::Base

    has_many :votes

    def to_s
        "hello?"
    end
end

当我尝试用&lt;%= @question %&gt; 显示Question

我明白了……

#&lt;ActiveRecord::Relation:0x1042b2960&gt;

显然我希望得到hello?

【问题讨论】:

  • 绝对有可能,我只是在rails控制台中做到的。直接调用 to_s 会得到什么?我很好奇你为什么要覆盖 to_s。如果它用于渲染,也许您更愿意将该逻辑本地化到视图和视图助手中。默认输出在其他上下文中可能会有所帮助和/或预期,例如调试甚至与 rails 本身的交互。
  • 您能否在您填充@question 的位置发布您的控制器代码。此外,您可以通过在您的操作方法中执行 render :text=&gt;@question 来消除图片中的视图。

标签: ruby-on-rails ruby oop polymorphism


【解决方案1】:

您确定@question 是一个问题吗?您收到的to_s 回复让我不这么认为。

#<ActiveRecord::Relation:0x1042b2960>

看起来你有一个 ActiveRecord::Relation,而不是一个 Question。

【讨论】:

  • 在进一步研究之后,我使用了Question.where(),它返回了一个问题数组,所以我正在处理一个数组......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-21
  • 1970-01-01
  • 2010-09-10
相关资源
最近更新 更多