Felipe Pieretti Umpierre
2012-Feb-14 01:43 UTC
What I''m doing wrong, has_and_belong_to_many
Hello, I''m trying to insert into my migrate but when I try on rails console this error shows: 1.9.3-p0 :001 > group = Group.new => #<Group id: nil, name: nil, description: nil, created_at: nil, updated_at: nil> 1.9.3-p0 :002 > group.name = "Group Name" => "Group Name" 1.9.3-p0 :003 > group.description = "Description" => "Description" 1.9.3-p0 :004 > group.save (0.2ms) BEGIN SQL (0.4ms) INSERT INTO `groups` (`created_at`, `description`, `name`, `updated_at`) VALUES (''2012-02-14 01:39:22'', ''Description'', ''Group Name'', ''2012-02-14 01:39:22'') (124.5ms) COMMIT => true 1.9.3-p0 :005 > email = Email.new => #<Email id: nil, name: nil, email: nil, sex: "M", created_at: nil, updated_at: nil> 1.9.3-p0 :006 > email.name = "Gremio10" => "Gremio10" 1.9.3-p0 :007 > email.email = "gremio-kBReAod5fl8@public.gmane.org" => "gremio-kBReAod5fl8@public.gmane.org" 1.9.3-p0 :008 > email.save (0.2ms) BEGIN SQL (0.5ms) INSERT INTO `emails` (`created_at`, `email`, `name`, `sex`, `updated_at`) VALUES (''2012-02-14 01:39:56'', ''gremio-kBReAod5fl8@public.gmane.org'', ''Gremio10'', ''M'', ''2012-02-14 01:39:56'') (65.6ms) COMMIT => true 1.9.3-p0 :009 > group << email NoMethodError: undefined method `<<'' for #<Group:0xa7efb80> from /home/felipe/.rvm/gems/ruby-1.9.3-p0/gems/activemodel-3.2.1/lib/active_model/attribute_methods.rb:407:in `method_missing'' from /home/felipe/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/attribute_methods.rb:126:in `method_missing'' from (irb):9 from /home/felipe/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.1/lib/rails/commands/console.rb:47:in `start'' from /home/felipe/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.1/lib/rails/commands/console.rb:8:in `start'' from /home/felipe/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.1/lib/rails/commands.rb:41:in `<top (required)>'' from script/rails:6:in `require'' from script/rails:6:in `<main>'' 1.9.3-p0 :010 > My EmailModel class Email < ActiveRecord::Base has_and_belongs_to_many :groups validate :email end My GroupModel class Group < ActiveRecord::Base has_and_belongs_to_many :emails validate :name end My GroupsMigrate class CreateGroups < ActiveRecord::Migration def change create_table :groups do |t| t.string "name" t.string "description" t.timestamps end end def down drop_table :groups end end My EmailsMigrate class CreateEmails < ActiveRecord::Migration def change create_table :emails do |t| t.string "name" t.string "email" t.string "sex", :default => "M", :limit => 1 t.timestamps end end def down drop_table :emails end end My EmailsGroupsMigrate class CreateEmailsGroupsJoin < ActiveRecord::Migration def up create_table :emails_groups, :id => false do |t| t.references :email t.references :group end add_index :emails_groups, [ "email_id", "group_id" ] end def down drop_table :emails_groups end end Thank you. -- Posted via http://www.ruby-forum.com/. -- 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 Mon, Feb 13, 2012 at 20:43, Felipe Pieretti Umpierre <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Hello, I''m trying to insert into my migrate but when I try on rails > console this error shows:...> 1.9.3-p0 :009 > group << email > NoMethodError: undefined method `<<'' for #<Group:0xa7efb80>This is the chunk you need to worry about. It''s telling you that you haven''t defined any << method for your Group model. AR doesn''t provide one, as such a thing just wouldn''t make sense for most models.> class Email < ActiveRecord::Base > has_and_belongs_to_many :groups > validate :email > end...> class Group < ActiveRecord::Base > has_and_belongs_to_many :emails > validate :name > endYou may also want to consider using "has_many :through" rather than has_and_belongs_to_many. I''ve heard horror stories of people having trouble getting HABTM to work right (though I never had problems with it myself), and if you ever decide you want to "decorate" that relationship with any additional data, it can be very difficult to retrofit a HABTM relationship to become HMT. -Dave -- Dave Aronson: Available Cleared Ruby on Rails Freelancer (NoVa/DC/Remote) -- see www.DaveAronson.com, and blogs at www.Codosaur.us, www.Dare2XL.com, www.RecruitingRants.com -- 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.
Felipe Pieretti Umpierre
2012-Feb-14 11:47 UTC
Re: What I''m doing wrong, has_and_belong_to_many
If I don''t have the method ''<<'', how can I install on my rails ? -- Posted via http://www.ruby-forum.com/. -- 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.
If you have a has_many relationship or if you have any collection, you will be able to use the append method << . att 2012/2/14 Felipe Pieretti Umpierre <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>> If I don''t have the method ''<<'', how can I install on my rails ? > > -- > Posted via http://www.ruby-forum.com/. > > -- > 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. > >-- thiagocifani http://thiagocifani.wordpress.com/ twitter.com/thiagocifani del.icio.us/thiagocifani <http://del.icio.us/thiagocifani> -- 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.
Felipe Pieretti Umpierre
2012-Feb-15 01:54 UTC
Re: What I''m doing wrong, has_and_belong_to_many
My error: I was doing this -> group << email But the correct is doing this -> group.emails << email Thank you -- Posted via http://www.ruby-forum.com/. -- 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.