# Output values being converted?

**URL:** <https://www.ruby-forum.com/t/output-values-being-converted/178583>\
**Category:** Rails\
**Created:** [November 7, 2009, 1:07am UTC](https://www.ruby-forum.com/t/output-values-being-converted/178583 "2009-11-07T01:07:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![bouldr-matt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/85e7bf/32.png) [@bouldr-matt](https://www.ruby-forum.com/u/bouldr-matt)\
**Post date:** [November 7, 2009, 1:07am UTC](https://www.ruby-forum.com/t/output-values-being-converted/178583/1 "2009-11-07T01:07:16Z")

</div>

Hi all,

I’ve got a c++ program that inserts data into a mysql database, its a  
32 length varchar column in question that contains sha256 hashes such as

018cf0b47256973ab6f08a720208c28c34d85722

Unfortunately, when I come to read this in rails and print out the hash  
in a  
view, it prints out a short integer like 847.

I’ve tried it in irb, I can see the hash correctly as the return value  
of a  
.find, but it still comes out wrong when I print it directly:

=\> @hash = FileHash.find(:first)

> > #\<FileHash id: 423, hash: “018cf0b47256973ab6f08a720208c28c34d85722”, size: 1393\>  
> > =\> @hash.size
> 
> > 1393  
> > =\> @hash.hash
> 
> > 847

I can’t think what would be causing this, I’ve never come across  
anything  
quite like this before. I’m not using any unusual encodings or anything,  
at  
least, I’m using the same a I always have without problems.

Hope someone can shed light on this.

Thanks

Matt

---

<div class="post-metadata">

**Author:** ![bouldr-matt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/85e7bf/32.png) [@bouldr-matt](https://www.ruby-forum.com/u/bouldr-matt)\
**Post date:** [November 7, 2009, 1:23am UTC](https://www.ruby-forum.com/t/output-values-being-converted/178583/2 "2009-11-07T01:23:04Z")

</div>

On Sat, Nov 07, 2009 at 12:06:07AM +0000, Matt H. wrote:

> I can’t think what would be causing this, I’ve never come across anything  
> quite like this before. I’m not using any unusual encodings or anything, at  
> least, I’m using the same a I always have without problems.
> 
> Hope someone can shed light on this.
> 
> Thanks
> 
> Matt

Well to answer my own question yet again:

It turns out that hash is a method defined by activerecord already. I  
originally had problems naming my model Hash so I changed it to  
FileHash. I  
didn’t realise that hash was a method as well as a class.

Changing the column name in the db, rails and the c++ app has fixed the  
problem 🙂

Matt

---

<div class="post-metadata">

**Author:** ![bouldr-matt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/85e7bf/32.png) [@bouldr-matt](https://www.ruby-forum.com/u/bouldr-matt)\
**Post date:** [November 7, 2009, 3:53am UTC](https://www.ruby-forum.com/t/output-values-being-converted/178583/3 "2009-11-07T03:53:27Z")

</div>

On Nov 6, 2009, at 7:21 PM, Matt H. wrote:

> > Unfortunately, when I come to read this in rails and print out the  
> > =\> @hash.size  
> > Hope someone can shed light on this.  
> > didn’t realise that hash was a method as well as a class.
> 
> Changing the column name in the db, rails and the c++ app has fixed  
> the  
> problem 🙂
> 
> Matt

You could have also accessed the original column as:

@hash[‘hash’]

which forces the name ‘hash’ to be treated as an attribute name of the  
model.

FYI, you also run into the same kind of problem with other names that  
conflict with exiting methods.

-Rob

Rob B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![bouldr-matt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/85e7bf/32.png) [@bouldr-matt](https://www.ruby-forum.com/u/bouldr-matt)\
**Post date:** [November 7, 2009, 11:17am UTC](https://www.ruby-forum.com/t/output-values-being-converted/178583/4 "2009-11-07T11:17:36Z")

</div>

On Nov 7, 12:21 am, Matt H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> On Sat, Nov 07, 2009 at 12:06:07AM +0000, Matt H. wrote:
> 
> It turns out that hash is a method defined by activerecord already. I  
> originally had problems naming my model Hash so I changed it to FileHash. I  
> didn’t realise that hash was a method as well as a class.
> 
> Changing the column name in the db, rails and the c++ app has fixed the  
> problem 🙂

All objects in ruby have a hash method for which the following  
statement should hold

a.hash != b.hash =\> a!=b

Among other things it is used when you use something as a key in a  
Hash.

Fred
