Chris -- 

one more question if you don't mind too much!  So, I blew away everything and 
started over this
time using just the command line tools w/o fiddling around (at least outside of 
adding the enum
pieces -- which seem on the surface like they might plug into the generator).. 
Below are the commands I use and works (sort-of) when using the web-interface 
to http://localhost:3000/users/new

However, I don't believe it's creating the associations correctly -- the 
"has_one" is incorrect as it's
kicked out when issuing the initial migrate to setup the database..  Do I need 
to put the has_one
in by hand or is my syntax messed up?  I was looking over the api-docs and 
thought i had it right
but perhaps not.  Below are the commands I issued :

1) rails new test
2) rails generate scaffold user address:has_one acct_locked:boolean 
family_id:integer is_profile_setup:boolean last_login:datetime password:string 
security_question:string security_answer:string username:string type:string
3) rails generate model address user:references street:string city:string 
state:string zip:string email:string phone:string
4) bundle exec rake db:migrate

I get this on step #4 above :
rake aborted!
An error has occurred, this and all later migrations canceled:

undefined method `has_one' for 
#<ActiveRecord::ConnectionAdapters::TableDefinition:0x007fd88525e148>
/Users/nrf/.rvm/gems/ree-1.8.7-2011.03/gems/activerecord-3.0.9/lib/active_record/connection_adapters/abstract/schema_definitions.rb:326:in
 `method_missing'

Ugg.. 

On Jul 28, 2011, at 11:50 PM, Chris Kottom wrote:

> If you want to do revisions on existing tables (adding columns, changing data 
> types, etc.) you can use migrations for that as well.  Experiment on the 
> command line with patterns like:
> 
> rails g migration add_columns_to_addresses column_1:string column_2:integer 
> ...
> rails g migration remove_columns_from_addresses column_1:string 
> column_2:integer ...
> 
> The generator will try to figure out what you're attempting to do if you give 
> it some basic instructions and if what you want to do isn't too complicated.
> 
> On Fri, Jul 29, 2011 at 8:35 AM, Rick & Nellie Flower <[email protected]> 
> wrote:
> Thanks for the reply Chris..
> 
> I'll switch away from Camelcase.. I use that at work all day long (C++) so 
> I'm used to looking at
> it.
> 
> I initially used the generator but when revising tables it didn't want to run 
> anymore complaining 
> some of the files were already there -- which is why I resorted to 
> hand-edits.  I'll do some more
> reading on what you suggested.. Thx!
> 
> -- Rick
> 
> On Jul 28, 2011, at 11:22 PM, Chris Kottom wrote:
> 
>> Are you not using generators for the initial creation of your model and 
>> migration source files?  I'm asking because I think I can count on one hand 
>> the number of times I've ever written out a create_table function myself.  
>> Your inputs from the command line should do all this for you along with some 
>> of the work of setting up your model associations (e.g. the belongs_to call 
>> in your Address class definition) and save you some effort.  If you're using 
>> the generators properly, you may never have to touch the migration files for 
>> simpler applications.
>> 
>> rails g scaffold user acctLocked:boolean familyId:integer 
>> isProfileSetup:boolean ...
>> rails g model address user:references address:string city:string ...
>> 
>> For more info:
>> http://guides.rubyonrails.org/getting_started.html
>> http://guides.rubyonrails.org/command_line.html#rails-generate
>> 
>> One other small thing: you're writing your variable names using camel case 
>> (lowerCaseWithCapitalsIndicatingWordBoundaries) whereas the more widely 
>> recognized Ruby convention is to use all_lower_case_with_underscores.  I 
>> left your variable names as-is in the sample code above, but if it's code 
>> that anyone else will ever see or work on, you might consider changing it.
>> 
>> On Fri, Jul 29, 2011 at 4:43 AM, Rick & Nellie Flower <[email protected]> 
>> wrote:
>> Ok.. Still working on this stuff.. I've got the t.reference in the migration 
>> for the address class and moved the belongs_to and has_one in the model 
>> classes as indicated (I didn't notice that!).
>> 
>> I noticed in the association-basics that I should be putting a create_table 
>> function (if that's what
>> it's called) in the CreateUsers class for Migrations but I'm concerned about 
>> doing that since I'll be using the address class on more than just the 
>> 'users' class -- does it really belong there or ??
>> Perhaps I'm overthinking this.. ??
>> 
>> Below are the two class definitions for both the model & migration :
>> 
>> class Address < ActiveRecord::Base
>>  belongs_to :user
>>  belongs_to :organization
>>  belongs_to :supplier
>> end
>> 
>> class CreateAddresses < ActiveRecord::Migration
>> 
>>  def self.up
>>    create_table :addresses do |t|
>>      t.string :address
>>      t.string :city
>>      t.string :state
>>      t.string :zip
>>      t.string :email
>>      t.string :phone
>>      t.references : users
>> 
>>      t.timestamps
>>    end
>>  end
>> 
>>  def self.down
>>    drop_table :addresses
>>  end
>> end
>> 
>> =================================
>> class User < ActiveRecord::Base
>>  enum_attr :accountType, %w(regular admin site_admin), :init=>:regular
>> 
>>  has_one :name
>>  has_one :address
>>  has_one :organization
>> 
>> end
>> 
>> class CreateUsers < ActiveRecord::Migration
>> 
>>  def self.up
>>    create_table :users do |t|
>>      t.boolean  :acctLocked
>>      t.integer  :familyId
>>      t.boolean  :isProfileSetup
>>      t.datetime :lastLogin
>>      t.string   :password
>>      t.string   :securityQ
>>      t.string   :securityA
>>      t.string   :username
>>      t.enum     :accountType
>> 
>>      t.timestamps
>>    end
>> 
>>    create_table :a
>>  end
>> 
>>  def self.down
>>    drop_table :users
>>  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 [email protected].
>> To unsubscribe from this group, send email to 
>> [email protected].
>> For more options, visit this group at 
>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>> 
>> 
>> 
>> -- 
>> 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 [email protected].
>> To unsubscribe from this group, send email to 
>> [email protected].
>> For more options, visit this group at 
>> http://groups.google.com/group/rubyonrails-talk?hl=en.
> 
> 
> -- 
> 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 [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/rubyonrails-talk?hl=en.
> 
> 
> -- 
> 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 [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/rubyonrails-talk?hl=en.

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to