Запрос Rails ActiveRecord только возвращает шестнадцатеричный результат - PullRequest
0 голосов
/ 07 сентября 2011

В моем проекте на Rails 3 у меня есть три модели: Projects has_many Feeds и Feeds has_many XML_Fields.У меня есть запись в таблице проектов с :name = "TestProject".Я запускаю скрипт, расположенный в / app /, используя rails runner, и пытаюсь получить доступ к записям базы данных с помощью ActiveRecord:

class Testing < ActiveRecord::Base

project = Project.find_by_name("TestProject")
puts project
end

Использую ли я find_by_name, find, where,или что-то еще, мои результаты всегда выглядят так:

#<Project:0x00000102b30ad0>

Как мне заставить ActiveRecord возвращать фактическое содержимое этой записи в БД (например, я хочу, чтобы она поместила «TestProject»)?

Ответы [ 2 ]

3 голосов
/ 07 сентября 2011

Ваш вывод в порядке.Вы просто получаете проверку вывода для вашей модели.У вас есть две возможности получить желаемый результат:

puts project.name

или переопределить to_s:

def to_s
  name
end
1 голос
/ 07 сентября 2011

вы можете попробовать project.to_yaml или p project или project.inspect в зависимости от ваших потребностей.

put просто печатает экземпляр объекта на стандартный вывод, в данном случае экземпляр Project, если вы используете команду put project.name это напечатало бы возвращаемое значение имени метода экземпляра в $ stdout

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...