*class SystemAdmin < ActiveRecord::Base* * belongs_to :user* *end* * * *class User < ActiveRecord::Base* * has_secure_password* * * * has_one :system_admin * *end* * * *@user = User.find_by_user_name(user_name)* * if !@user.system_admins.nil?* * puts ''am a sys_admin''* * * The above code gives error like this * * NoMethodError (undefined method `system_admins'' for #<User:0xa81a2e0>): app/controllers/application_controller.rb:17:in `user_authenticate'' Have any problem with this condition checking* if !@user.system_admins.nil? *also any problem with the model relation? * * * * * * *Thank you* *vishnu* * * * * -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/FhRZVfzMTtMJ. 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 3 April 2012 09:12, amvis <vgrkrishnan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> class User < ActiveRecord::Base > has_one :system_admin > end > > @user = User.find_by_user_name(user_name) > if !@user.system_admins.nil? > puts ''am a sys_admin'' > > The above code gives errorSince you''ve defined the association as a has_one, you should use it in the singular: if !@user.system_admin.nil? but "!...nil?" is a bit stinky; either use: if @user.system_admin or unless @user.system_admins.nil? -- 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.
Thanks, got the solution... On Tuesday, 3 April 2012 04:20:50 UTC-4, pavling wrote:> > On 3 April 2012 09:12, amvis <vgrkrishnan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > class User < ActiveRecord::Base > > has_one :system_admin > > end > > > > @user = User.find_by_user_name(user_name) > > if !@user.system_admins.nil? > > puts ''am a sys_admin'' > > > > The above code gives error > > Since you''ve defined the association as a has_one, you should use it > in the singular: > if !@user.system_admin.nil? > > but "!...nil?" is a bit stinky; either use: > if @user.system_admin > or > unless @user.system_admins.nil? > >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/5om_ZR_2mOEJ. 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.