I''m trying to get this plugin to work:
https://github.com/mettadore/geoinfo
It basically gets you all the cities and states in the United States.
However, it reads: "I haven’t added a rake task to populate the database
yet. But the YAML files are in vendor/plugins/geoinfo/lib/db/*.yml"
Alright, no problem, I''ll do it manually then. However, I look in the
file,
and I find stuff that looks like this:
- !ruby/object:GeoinfoState
attributes:
name: STATE
abbr: ABBR
country: COUNTRY
type: TYPE
id: "ID"
- !ruby/object:GeoinfoState
attributes:
name: ALASKA
abbr: AK
country: UNITED STATES OF AMERICA
type: STATE
id: "1"
- !ruby/object:GeoinfoState
attributes:
name: ALABAMA
abbr: AL
country: UNITED STATES OF AMERICA
type: STATE
id: "2"
- !ruby/object:GeoinfoState
attributes:
name: ARKANSAS
abbr: AR
country: UNITED STATES OF AMERICA
type: STATE
id: "3"
and so on
The file name is states.yml.
Now, my question is what exactly is this file? How do I use it? The syntax
doesn''t exactly look like its a fixture...
I''m confused on how I can populate my db tables with that file. Does
anyone
know how? What is that file used for? how?
Thank you.
-David
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
On Tuesday, April 5, 2011 5:15:32 PM UTC-6, David Zhu wrote:> > I''m trying to get this plugin to work: > https://github.com/mettadore/geoinfo > > It basically gets you all the cities and states in the United States. > > However, it reads: "I haven’t added a rake task to populate the database > yet. But the YAML files are in vendor/plugins/geoinfo/lib/db/*.yml" > > Alright, no problem, I''ll do it manually then. However, I look in the file, > and I find stuff that looks like this: > > - !ruby/object:GeoinfoState > attributes: > name: STATE > abbr: ABBR > country: COUNTRY > type: TYPE > id: "ID" > > - !ruby/object:GeoinfoState > attributes: > name: ALASKA > abbr: AK > country: UNITED STATES OF AMERICA > type: STATE > id: "1" > > - !ruby/object:GeoinfoState > attributes: > name: ALABAMA > abbr: AL > country: UNITED STATES OF AMERICA > type: STATE > id: "2" > > - !ruby/object:GeoinfoState > attributes: > name: ARKANSAS > abbr: AR > country: UNITED STATES OF AMERICA > type: STATE > id: "3" > > > and so on > > The file name is states.yml. > > Now, my question is what exactly is this file? How do I use it? The syntax > doesn''t exactly look like its a fixture... >It is a YAML file (which, by default, your scaffolded fixtures are as well). It looks like the YAML was used to serialize some ruby objects. For example (irb session using 1.8.7): require ''yaml'' class GeoinfoState attr_accessor :attributes end x = GeoinfoState.new x.attributes = { :name => "ALASKA", :abbr => "AK", :country => "UNITED STATES OF AMERICA", :type => "STATE", :id => "1" } puts YAML.dump(x) --- !ruby/object:GeoinfoState attributes: :type: STATE :abbr: AK :country: UNITED STATES OF AMERICA :name: ALASKA :id: "1"> I''m confused on how I can populate my db tables with that file. Does anyone > know how? What is that file used for? how? >One way is to define a simple class (similar to what I did above) or ensure the geoinfo gem''s version is loaded. Then do something like: states = YAML.load_file(...) states.each do |s| State.create!(:name => s.name, ...) # where State is your model end If this isn''t a one-off action, you could even define a method to do something like this in your State class: require ''yaml'' class State < ActiveRecord::Base def self.import_from(filename) YAML.load_file(filename).each do |s| create!(...) end end end -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Thank you for the response So basically it* doesn''t* populate a database table? But instead, I retrieve it directly from the yaml file? -David -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Tuesday, April 5, 2011 5:53:42 PM UTC-6, David Zhu wrote:> > Thank you for the response > > So basically it* doesn''t* populate a database table? But instead, I > retrieve it directly from the yaml file? > > -David > >Correct. It appears this file was just intended to store serialized objects, no database needed. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.