Hi Daynthan, I have the same problem. So I see you got working solution. Please, can you post final version of working important files? Thank you.
On Friday, January 6, 2017 at 2:45:29 PM UTC+1, daynthan kabilan wrote: > > Thank you Tamosus pontik. > > I have done the task using this keyword require "#{dynamic_model_name}" > > On Thu, Jan 5, 2017 at 7:24 PM, tamouse pontiki <tamous...@gmail.com > <javascript:>> wrote: > >> On Thu, Jan 5, 2017 at 2:40 AM Daynthan Kabilan <dayan...@gmail.com >> <javascript:>> wrote: >> >>> Hi Tamosus pontik, >>> >>> Thanks for your reply. >>> The model file is created dynamically based on this code. >>> >> >> And after you write that file, you need to require it for Rails to use >> it. That's why the constant is undefined. >> >> Do you know how the require statement works in Ruby? >> >> >>> 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 <tamous...@gmail.com >>> <javascript:>> wrote: >>> >>>> >>>> >>>> On Wed, Jan 4, 2017 at 8:57 AM Daynthan Kabilan <dayan...@gmail.com >>>> <javascript:>> 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-ta...@googlegroups.com <javascript:>. >>>> To post to this group, send email to rubyonra...@googlegroups.com >>>> <javascript:>. >>>> >>> 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-ta...@googlegroups.com <javascript:>. >>> To post to this group, send email to rubyonra...@googlegroups.com >>> <javascript:>. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/rubyonrails-talk/CADKeJyQKcRGM%3Dj3miANP9PqfODZ6fA8x98F8vUfG_QQ1KnEntw%40mail.gmail.com >>> >>> <https://groups.google.com/d/msgid/rubyonrails-talk/CADKeJyQKcRGM%3Dj3miANP9PqfODZ6fA8x98F8vUfG_QQ1KnEntw%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-ta...@googlegroups.com <javascript:>. >> To post to this group, send email to rubyonra...@googlegroups.com >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/rubyonrails-talk/CAHUC_t8QDyZZhv0Z4TANe1Zc7jcR%2BqYsW4iitPxLQz%3DGqXMpKw%40mail.gmail.com >> >> <https://groups.google.com/d/msgid/rubyonrails-talk/CAHUC_t8QDyZZhv0Z4TANe1Zc7jcR%2BqYsW4iitPxLQz%3DGqXMpKw%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/ab8b2b6c-7a81-478c-9456-34af1c04e20a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.