[Facebooker-talk] view problem
kevin lochner
klochner at gmail.com
Fri Jan 23 17:52:22 EST 2009
here's the where the breakdown happens, from model.rb. You can see
that location gets
set to "" if it's not a hash.
def hash_settable_writer(symbol, klass)
define_method("#{symbol}=") do |value|
instance_variable_set("@#{symbol}", value.kind_of?(Hash) ?
klass.from_hash(value) : value)
end
end
- kevin
On Jan 23, 2009, at 5:40 PM, kevin lochner wrote:
> I was wrong, it's not just in the view, it's a problem in the
> controller as well.
>
> This may be considered a bug - if the user location is empty, the
> object returned by user.location is a string,
> so calling user.location.city throws an exception.
>
> In my controller I iterate over users with the following:
>
> > friends.each do |f|
> > logger.warn "class: #{f.current_location.class}"
> > logger.warn "location: #{f.current_location}"
> > if f.current_location
> logger.warn "city: #{f.current_location.city} \n"
> > end
> > end
>
> and I get the following output:
>
> >class: Facebooker::Location
> >location: #<Facebooker::Location:0x7fe614b68eb8>
> >city:
>
> >class: Facebooker::Location
> >location: #<Facebooker::Location:0x7fe614b67b58>
> >city: Ann Arbor
>
> >class: String
> >location:
> > NoMethodError (undefined method `city' for "":String):
>
> and for verification i dumped the hash from which the user was
> populated:
> > nameJeff
> SmithuidXXXXXlocaleen_USfirst_nameJeffcurrent_locationlast_nameSmith
>
>
> On Jan 23, 2009, at 5:26 PM, Mike Mangino wrote:
>
>> user.location is returning an object, so when to_s is called you
>> get the inspect string, like #<Location 34327832>
>>
>> user.location.city should print the string.
>>
>> Mike
>>
>> On Jan 23, 2009, at 4:36 PM, kevin lochner wrote:
>>
>>> i'm trying to print out user locations in my view. I'd like to
>>> just pass a user model to the
>>> view and print out the user location as user.location.city
>>>
>>> I can access user.location.city in the controller, but in the view
>>> user.location returns "#"
>>>
>>> Could someone explain what's going on and maybe give an
>>> alternative solution?
>>>
>>> _______________________________________________
>>> Facebooker-talk mailing list
>>> Facebooker-talk at rubyforge.org
>>> http://rubyforge.org/mailman/listinfo/facebooker-talk
>>
>> --
>> Mike Mangino
>> http://www.elevatedrails.com
>>
>>
>>
>
More information about the Facebooker-talk
mailing list