2012-03-30 14 views
5

क्या को गतिशील के रूप में सेट करने या इसे किसी वैध तरीके से परिवर्तित करने का कोई तरीका है? यह वर्तमान में त्रुटि फेंक है: '# के लिए ...गतिशील विशेषता कैसे सेट करें

def copy_stock_data_from_sandbox(cntrlr) 
    source_table = cntrlr.singularize.classify.constantize 
    dest_table = source_table.new 
    source_table.column_names.each do |col| 
    dest_table.col = xyz # <------ This is the line in question 
    end 
    dest_table.save 
end 

इसके अलावा, सुनिश्चित नहीं करता है, तो शीर्षक सही है, सुझाव है कि कृपया अगर' अपरिभाषित विधि `col = गतिशील विशेषता 'इस स्थिति के लिए गलत शब्द है । धन्यवाद

उत्तर

11

मुझे विश्वास है कि आप निम्नलिखित के लिए देख रहे:

dest_table.send(:"#{col}=", xyz) 
7

आप कोशिश कर सकते हैं

dest_table.write_attribute(col, xyz) 

या

dest_table[col] = xyz 

या

dest_table.send("#{col}=", xyz) 
+0

'write_attribute' एक निजी विधि है –

संबंधित मुद्दे