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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to