Создание случайного файла Ruby on Rails 3 - PullRequest
0 голосов
/ 01 марта 2011

У меня сейчас есть приложение ruby, которое хранит данные для поиска.Однако я хотел создать файл результатов поиска и застрял.Я нашел команду file.open("given_name.txt", "w"), но у меня возникли проблемы с заполнением ее результатами поиска.

Результаты определяются в моем классе для Mp3Meta и возвращаются из него в качестве запроса в базу активных записей и заполняют ее.на экране в index.html.erb.Я просто заблудился, как решить эту проблему или убедиться, что данные переданы, чтобы я мог правильно создать файл.

Я хотел разобрать его в этом формате, но я не уверен в операторах,Я новичок в рубине и рельсах.

def save_result
    mp3 = Mp3Meta
    file.open("result.txt","w")
    file.put("#EXTM3U")
    for.each.mp3(file.put("#MP3INF"+ mp3.length + "," + mp3.artist_name + "-" + mp3.title + mp3.url))
    end
end

Ответы [ 2 ]

1 голос
/ 01 марта 2011
mp3 = Mp3Meta

Буквально присваивает класс Mp3Meta переменной mp3. Вы, вероятно, пытаетесь создать экземпляр класса, который будет Mp3Meta.new. Если Mp3Meta является классом ActiveRecord (который вы, кажется, упоминаете косвенно в вопросе), тогда вам действительно нужно вместо этого использовать запрос к классу, чтобы получить перечисляемый результат.

Другие строки в коде демонстрируют аналогичные ошибки, в частности, строка for.each.mp3, которая разбита как минимум 4 способами. : -)

Я настоятельно рекомендую вам внимательно изучить хороший учебник по Ruby, сделать все примеры для себя и попробовать небольшие изменения самостоятельно. Я рекомендую Программирование на Ruby . Как только вы хорошо понимаете Ruby, затем начните изучать Rails.

0 голосов
/ 01 марта 2011

Если ваш вопрос заключается в том, как создать случайный файл на диске, чтобы ваш файл file.open не сталкивался с несколькими запросами, используйте файл tempfile для его создания.

http://ruby -doc.org / STDLIB / libdoc / временный файл / RDoc / index.html

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