Menyimpan dalam memori Rails
def copy_question
Rails.cache.clear
question_tree = QuestionTree.find(params[:id])
@question = Question.find(question_tree.question_id)
new_question = prepare_copy_question(@question)
render :nothing => true
end
private
def prepare_copy_question(question)
new_question = Question.new
new_question.survey_id = question.survey_id
new_question.survey_category_id = question.survey_category_id
new_question.option_group_id = question.option_group_id
new_question.name = question.name
new_question.question_text = question.question_text
new_question.description = question.description
new_question.max_score = question.max_score
new_question.min_score = question.min_score
new_question.question_type_id = question.question_type_id
new_question.question_category_id = question.question_category_id
Rails.cache.fetch(‘question-copy’) {new_question}
end
Code untuk memanggil :
def new
copied_question = Rails.cache.read(‘question-copy’)
@question = copied_question.nil? ? Question.new : copied_question
survey= Survey.find(params[:id])
if request.xhr?
render :update do |page|
@error_questions = []
page.replace_html “new-question-#{params[:question_tree_id]}-#{params[:option_id]}”,
:partial => “new”,
:locals =>{
:question_tree_id => params[:question_tree_id],
ption_id => params[:option_id],
:survey => survey,
:level => params[:level],
:sequence => params[:sequence],
:sequence_question => params[:sequence_question] || nil
}
end
end
end
Spesifik :
Rails.cache.read(‘question-copy’) => membaca cache
Rails.cache.fetch(‘question-copy’) {new_question => memasukkan dalam range
Rails.cache.clear => menghapus memori




