无法使用点表示法访问活动记录中的数据

发布于 2024-10-26 14:42:24 字数 524 浏览 1 评论 0原文

我用 Ruby 创建了一个模型,但遇到了一个 n00b 问题。在 Rails 控制台中:

<块引用>

s = Survey.where(:keyword => 'foo') => [#] s.inittxtmsg NoMethodError: #的未定义方法 inittxtmsg' 来自 /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/relation.rb:371:inmethod_missing' 来自(irb):3

难道我不能通过输入 s.Survey_id、s.inittxtmsg、s.keyword、s.store 来查看这些值吗?

谢谢你!

I created a model in Ruby and am stuck on a n00b issue. In Rails Console:

s = Survey.where(:keyword => 'foo')
=> [#]
s.inittxtmsg
NoMethodError: undefined method inittxtmsg' for #<ActiveRecord::Relation:0x10350f8f8>
from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/relation.rb:371:in
method_missing'
from (irb):3

Shouldn't I be able to see the values by typing s.Survey_id, s.inittxtmsg, s.keyword, s.store?

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一袭水袖舞倾城 2024-11-02 14:42:24
Survey.where(:keyword => 'foo')

返回结果数组,因此您实际上是在数组上调用 .inittxtmsg,而该数组显然不存在。

您可以执行以下操作:

Survey.where(:keyword => 'foo').first.inittxtmsg,其中它在实际模型对象上调用它。

或者,如果您知道只有一项调查包含关键字 = foo...,您可以使用 find 方法仅返回单个模型对象:

s = Survery.find_by_keyword("foo")
s.inittxtmsg
Survey.where(:keyword => 'foo')

returns an array of results, so you are really calling .inittxtmsg on an array, which obviously doesn't exist.

You could do something like:

Survey.where(:keyword => 'foo').first.inittxtmsg, in which it is calling it on the actual model object.

Or if you know that there is only one survey with the keyword = foo... you can use the find method to only return a single model object:

s = Survery.find_by_keyword("foo")
s.inittxtmsg
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文