[Facebooker-talk] Overriding id with facebook_id???
Mike Mangino
mmangino at elevatedrails.com
Tue Nov 11 15:29:32 EST 2008
On Nov 11, 2008, at 2:50 PM, Lee Mallabone wrote:
> I use this migration (which makes use of the environment patch I
> posted previously) to ensure you don't get auto-incrementing IDs. They
> wouldn't make much sense when facebook are providing the ID!
>
> create_table :users, :id => false do |t|
> t.column :id, :int64_pk, :null => false # the facebook uid
> t.column :created_at, :datetime
> t.column :last_seen, :datetime
> end
>
You don't actually need the id field. If you just use :id=>false on
your migration you can set the primary key field of your model to
using the primary_key method. For example
class User < ActiveRecord::Base
primary_key :facebook_id
end
That let's you use an intention revealing name.
Mike
> Lee.
>
>
> 2008/11/11 Anthony C. Eufemio <aeon2012 at gmail.com>:
>> You'll also need to handle the fact that ids in Rails are
>> automatically
>> incremented so when a user uninstalls the app you won't be able to
>> remove
>> their account (perhaps just mark it as 'disabled' in your
>> application or
>> some similar approach) so when they decide to re-install the app
>> all you
>> have to do is set it to 'enabled'
>>
>>
>>
>> -AE
>>
>> On Tue, Nov 11, 2008 at 10:19 AM, Tres Wong-Godfrey
>> <tres.wong-godfrey at saniq.com> wrote:
>>>
>>> As of Rails 2.1 64 bit ints are supported in MySQL migrations.
>>> Formerly
>>> you needed to use a plugin to get this working in MySQL.
>>>
>>> Rails 2.1.0 had some problems with the implementation, but in
>>> 2.1.1 I
>>> believe they have fixed the implementation to work the same as
>>> Postgres, so
>>> using :limit => 8 gets you bigint in mysql.
>>>
>>> So something like this, should work under Rails 2.1.1 with no
>>> patching or
>>> plugins necessary:
>>> t.integer :facebook_id, :limit => 8, :null=> false
>>>
>>>
>>>
>>> On Nov 11, 2008, at 10:08 AM, Lee Mallabone wrote:
>>>
>>>> 2008/11/11 Joseph Durden <josephdurden at gmail.com>:
>>>>>
>>>>> I am new to rails, and was wondering if there would be unknown
>>>>> consequences
>>>>> for setting the user tables primary key to being the facebook_id
>>>>> of a
>>>>> user.
>>>>> I have implemented this funcionality, and everything is working
>>>>> fine.
>>>>> All
>>>>> associations etc. What are the risks if there are any of
>>>>> overridding
>>>>> the id
>>>>> with facebook_id? Why would I not want to do this?
>>>>
>>>> I'm doing this at the moment. The biggest thing I was concerned
>>>> about
>>>> was the potential for facebook user IDs to be 64bit numbers. (I
>>>> can't
>>>> remember the official Facebook stance on ID size but I'm pretty
>>>> sure
>>>> they weren't ruling out 64bit IDs). Rails migrations don't seem to
>>>> support 64bit values (on mysql at least) out-of-the-box.
>>>>
>>>> I worked around the issue by patching ActiveRecord. I added a
>>>> snippet
>>>> (attached) to environment.rb based on the following post and all
>>>> seems
>>>> fine to date:
>>>> http://snippets.dzone.com/posts/show/4422
>>>>
>>>> Use column type :int64_pk for your users table and :int64 for any
>>>> foreign key columns.
>>>>
>>>> Lee.
>>>>
>>>>
>>>>
>>>> --
>>>> Lee Mallabone.
>>>> Director, Crossbone Systems Ltd.
>>>>
>>>> http://www.crossbonesystems.com/
>>>> http://www.fonicmonkey.net/
>>>> http://CambridgeWebHeads.ning.com/
>>>>
>>>> <mysql-64bit-
>>>> monkeypatch.rb>_______________________________________________
>>>> Facebooker-talk mailing list
>>>> Facebooker-talk at rubyforge.org
>>>> http://rubyforge.org/mailman/listinfo/facebooker-talk
>>>
>>> _______________________________________________
>>> Facebooker-talk mailing list
>>> Facebooker-talk at rubyforge.org
>>> http://rubyforge.org/mailman/listinfo/facebooker-talk
>>
>>
>> _______________________________________________
>> Facebooker-talk mailing list
>> Facebooker-talk at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/facebooker-talk
>>
>>
>
>
>
> --
> Lee Mallabone.
> Director, Crossbone Systems Ltd.
>
> http://www.crossbonesystems.com/
> http://www.fonicmonkey.net/
> http://CambridgeWebHeads.ning.com/
> _______________________________________________
> 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