I’m working on an importer for answerhub and need to mark posts as solved. A couple other importers do something like this:
if topic["answer"] == '[accepted]' post.custom_fields['is_accepted_answer'] = true end
And then later call this:
def mark_topics_as_solved puts "", "Marking topics as solved..." PostAction.exec_sql <<-SQL INSERT INTO topic_custom_fields (name, value, topic_id, created_at, updated_at) SELECT 'accepted_answer_post_id', pcf.post_id, p.topic_id, p.created_at, p.created_at FROM post_custom_fields pcf JOIN posts p ON p.id = pcf.post_id WHERE pcf.name = 'is_accepted_answer' SQL end
When I do that, the posts don’t show up as solved, but if I try to mark a post as solved, I get a 500 error (presumably because it’s trying to mark a solved post as solved).
Is there something that I need to do to get rails to notice that the table has been updated?
My other solution is to just do this as a
if topic["answer"] == '[accepted]' post.custom_fields['is_accepted_answer'] = true the_topic = Topic.find(parent) the_topic.custom_fields['accepted_answer_post_id'] = post.id the_topic.save end