Невозможно получить доступ к данным в активной записи, используя точечную запись - PullRequest
1 голос
/ 25 марта 2011

Я создал модель в Ruby и застрял в проблеме n00b.В консоли Rails:

s = Survey.where (:: ключевое слово => '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 'from (irb): 3

Если я не смогу увидеть значения, набрав s.Survey_id, s.inittxtmsg, s.keyword, s.store?

Спасибовы!

1 Ответ

2 голосов
/ 25 марта 2011
Survey.where(:keyword => 'foo')

возвращает массив результатов, поэтому вы действительно вызываете .inittxtmsg для массива, которого, очевидно, не существует.

Вы можете сделать что-то вроде:

Survey.where(:keyword => 'foo').first.inittxtmsg, в котором он вызывает его для фактического объекта модели.

Или, если вы знаете, что существует только один опрос с ключевым словом = foo ... вы можете использовать метод find, чтобы вернуть только одну модельобъект:

s = Survery.find_by_keyword("foo")
s.inittxtmsg
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...