Hello, I am new to rails and am trying to get my associations straight. I have a User model and a Property model. I''d like to track who has updated a property record, so I added an integer field to the properties table called updated_by. Then I made the following changes: In the User model: has_many :properties In the Property model: belongs_to :user, :class_name => "User", :foreign_key => ''updated_by'' Here''s what I see inside of the rails console:>> prop = Property.first=> #<Property id: 1, name: "Main Street Center", ..., updated_by: nil>>> usr = User.first=> #<User id: 1, login: "sshartles", name: "Sam Shartles", ... >>> prop.user = usr=> #<User id: 1, login: "sshartles", name: "Sam Shartles", ... >>> prop.updated_by=> 1>> prop.updated_by.nameNoMethodError: undefined method `name'' for 1:Fixnum from (irb):5>>I''m not sure what I''ve done, but I think it''s something simple. Any help would be massively appreciated. Sam --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hello, I am new to rails and am trying to get my associations straight. I have a User model and a Property model. I''d like to track who has updated a property record, so I added an integer field to the properties table called updated_by. Then I made the following changes: In the User model: has_many :properties In the Property model: belongs_to :user, :class_name => "User", :foreign_key => ''updated_by'' Here''s what I see inside of the rails console:>> prop = Property.first=> #<Property id: 1, name: "Main Street Center", ..., updated_by: nil>>> usr = User.first=> #<User id: 1, login: "sshartles", name: "Sam Shartles", ... >>> prop.user = usr=> #<User id: 1, login: "sshartles", name: "Sam Shartles", ... >>> prop.updated_by=> 1>> prop.updated_by.nameNoMethodError: undefined method `name'' for 1:Fixnum from (irb):5>>I''m not sure what I''ve done, but I think it''s something simple. Any help would be massively appreciated. Sam --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
s. shartles wrote:> In the User model: > has_many :properties > > In the Property model: > belongs_to :user, :class_name => "User", :foreign_key => > ''updated_by'' > > > Here''s what I see inside of the rails console: >>> prop = Property.first > => #<Property id: 1, name: "Main Street Center", ..., updated_by: nil> >>> usr = User.first > => #<User id: 1, login: "sshartles", name: "Sam Shartles", ... > >>> prop.user = usr > => #<User id: 1, login: "sshartles", name: "Sam Shartles", ... > >>> prop.updated_by > => 1 >>> prop.updated_by.name > NoMethodError: undefined method `name'' for 1:Fixnum > from (irb):5 >>>Yeah the fixnum error is because updated_by is just an integer field to rails. If you tried: prop.user = usr prop.user.name #=> "Sam Shartles" This should get you are trying to acheive: In the User model: has_many :properties, :foreign_key => ''updated_by'' In the Property model: belongs_to :updated_by, :class_name => ''User'', :foreign_key => ''updated_by'' I must admit in the past I''ve tended to use ''updated_by_id'' instead as your field name that way you can access both updated_by_id (returns int) and updated_by (returns user). You may also look at the userstamp plugin: http://github.com/delynn/userstamp/tree/master Cheers Luke -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---