我在Ruby中创建了一个模型并且遇到了n00b问题。在Rails控制台中:
s = Survey.where(:keyword =>'foo') => [#] s.inittxtmsg NoMethodError:未定义的方法
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' 来自(irb):3
我不应该通过输入s.Survey_id,s.inittxtmsg,s.keyword,s.store来查看值吗?
谢谢!
答案 0 :(得分:2)
Survey.where(:keyword => 'foo')
返回一个结果数组,所以你真的在数组上调用.inittxtmsg,这显然不存在。
您可以执行以下操作:
Survey.where(:keyword => 'foo').first.inittxtmsg
,它在实际模型对象上调用它。
或者,如果您知道只有一个关键字= foo的调查...您可以使用find方法仅返回单个模型对象:
s = Survery.find_by_keyword("foo")
s.inittxtmsg