vocabularies = File.read(Rails.root.join('lib', 'seeds', 'words.csv'))
csv = CSV.parse(vocabularies, :headers => true, :encoding => 'ISO-8859-1')
csv.each do |row|
  t = Vocabulary.new
  t.word_column1 = row[0]
  t.word_column2 = row[1]
  t.word_column3 = row[2]
  t.word_column4 = row[3]
  t.word_column5 = row[4]
  t.save!
  puts "#{t.word_column1}, #{t.word_column2} saved"
end


On Sunday, January 15, 2017 at 3:21:54 AM UTC-5, parzival wade wrote:
>
> 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> 
>> wrote:
>>
>>> On Thu, Jan 5, 2017 at 2:40 AM Daynthan Kabilan <dayan...@gmail.com> 
>>> 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> 
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Wed, Jan 4, 2017 at 8:57 AM Daynthan Kabilan <dayan...@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-ta...@googlegroups.com.
>>>>> To post to this group, send email to rubyonra...@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-ta...@googlegroups.com.
>>>> To post to this group, send email to rubyonra...@googlegroups.com.
>>>> 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.
>>> To post to this group, send email to rubyonra...@googlegroups.com.
>>> 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/0d9ee2e7-c5d9-496e-8349-a656328fafd2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to