2012-01-04 1 views
0

Я стараюсь делать комментарии с разных сайтов новостей и обрабатывать с ними. Например, https://graph.facebook.com/comments/?ids=http://techcrunch.com/2012/01/04/mechanical-engineering-community-grabcad-grabs-4-million/Получение комментариев с сайта с использованием Rails и Koala

У меня есть комментарии, но я не знаю, как сохранить его в базе данных mysql (или любой другой базе данных), используя рельсы и коалу.

Любая помощь/советы очень ценится

ответ

-1

можно разобрать JSON с помощью Ruby,

data = ActiveSupport::JSON.decode(json_data) 

, а затем просто перебирать данных и сохранить его в базе данных с помощью ActiveRecord

data["data"].each do |comment| 
    Comment.create!(:message => comment.message, ...) 
end 
+0

спасибо, как мне создать json_data? – user1130493

+0

специально, когда я пытаюсь получить его из facebook. например, я не хочу копировать и вставлять весь этот текст в свой файл. есть ли эффективный способ сделать это, передав ссылку, которую я имею? – user1130493

0

Ознакомьтесь с кодом ниже:

url_commented_on = "http://techcrunch.com/2012/01/04/mechanical-engineering-community-grabcad-grabs-4-million/" 
fb_comments_url = "https://graph.facebook.com/comments/?ids="+url_commented_on 
fb_comments_json = open(fb_comments_url).read 
fb_comments_data = ActiveSupport::JSON.decode(fb_comments_json) 

# If you want to play around, this gets you the first comment 
fb_comments_data[url_commented_on]["comments"]["data"].first 
# and this gets you the first comment's message 
fb_comments_data[url_commented_on]["comments"]["data"].first["message"] 

# You could save them in your db like this: 
fb_comments = fb_comments_data[url_commented_on]["comments"]["data"] 
fb_comments.each do |fb_comment| 
    # Your comment Model here 
    fb_commenter_name = fb_comment["from"]["name"] 
    fb_comment_message = fb_comment["message"] 
    fb_comment_creation_date = fb_comment["created_time"] 
    # Your comment Model 
    comment = CommentModel.new 
    comment.author = fb_commenter_name 
    comment.comment_text = fb_comment_message 
    # Don't overwrite your own "created_at" attribute 
    # Instead, use an additional column in the db for storing the date fb gives you 
    comment.fb_created_at = fb_comment_creation_date 
    comment.save! 
end 

 Смежные вопросы

  • Нет связанных вопросов^_^