Hi Tamosus pontik, Thanks for your reply. The model file is created dynamically based on this code.
model_file = File.join("app", "models", fname.singularize+".rb") model_name = fname.singularize.capitalize File.open(model_file, "w+") do |f| f << "class #{model_name} < ActiveRecord::Base\nend" end But i need to store the values to specific tables. Note: I am not running migration for the dynamic tables(model) On Wed, Jan 4, 2017 at 10:07 PM, tamouse pontiki <tamouse.li...@gmail.com> wrote: > > > On Wed, Jan 4, 2017 at 8:57 AM Daynthan Kabilan <dayantha...@gmail.com> > wrote: > >> Hi, >> >> I have a CSV upload option and need to create a table and model based on >> the CSV colums. >> >> We allow to upload different kind of CSV file formats and each file >> upload will create new table and info will be stored accordingly. I have >> created a table with columns based on CSV file header and also created a >> model base on CSV file name. But when i store the file details to specific >> table i faced error. >> >> >> def self.import(file, head, csvalue,fname) >> >> ............... >> .............. >> >> ActiveRecord::Schema.define do >> create_table "#{fname}" do |t| >> #(define your columns just as you would in a migration file) >> head.each do |h| >> t.text h >> end >> # t.string :my_string >> end >> end >> >> model_file = File.join("app", "models", fname.singularize+".rb") >> model_name = fname.singularize.capitalize >> File.open(model_file, "w+") do |f| >> f << "class #{model_name} < ActiveRecord::Base\nend" >> end >> >> # ss=model_name.new >> * p ss=model_name.constantize.new* >> >> .............. >> ............... >> >> file="#{fname}_#{cnt}" >> return file >> end >> >> >> How can declare the object for dynamic model. Because I couldn't store >> the values to new table. >> >> I faced the *Error* like *NameError (uninitialized constant Mytest):* >> >> Any idea how to solve this ? >> > > I do not know if this will work, but you probably need to manually require > the model file you create before you try to constantize the model name. I > don't think Rails autoloading is working in this situation. > > > > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to rubyonrails-talk+unsubscr...@googlegroups.com. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/rubyonrails-talk/CAHUC_t9d3gqinFY2hSMDMm8- > Z49cQy7cRp4J8Nwgf3mAm4gccg%40mail.gmail.com > <https://groups.google.com/d/msgid/rubyonrails-talk/CAHUC_t9d3gqinFY2hSMDMm8-Z49cQy7cRp4J8Nwgf3mAm4gccg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CADKeJyQKcRGM%3Dj3miANP9PqfODZ6fA8x98F8vUfG_QQ1KnEntw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.