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.

Reply via email to