The problem here is with Rails, not with Hobo. The problem is that Rails really prefers to have an integer primary key. Here's the workaround:
http://stackoverflow.com/questions/1200568/using-rails-how-can-i-set-my-primary-key-to-not-be-an-integer-typed-column On the Hobo side, your primary key should not appear inside your fields declaration. Bryan Gezin.us wrote: > Hi All, > > I have some trouble using a alternative primary key in hobo: > > I created a Rails 2.3.5 app (without hobo), with following models: > > class Post < ActiveRecord::Base > belongs_to :user, :foreign_key => "user_code" > end > > class User < ActiveRecord::Base > set_primary_key :code > has_many :posts > end > > u = User.new > u.code = "USER1" > u.name="User 1" > u.save > u.find("USER1") => everything OK > > p = Post.new > p.title = "Post 1" > p.user = u > p.save => OK, p.user_code == "USER1" > > script/plugin install git://github.com/tablatom/hobo.git > > add hobo to models, (hobo_model, fields) -> everything still ok, able > to add new post, assign user, etc. > > Now I add a new model, group: > > class Group < ActiveRecord::Base > hobo_model # Don't put anything above this > > fields do > name :string > code :string > timestamps > end > > set_primary_key :code > > has_many :posts > end > > and update the post model: > > class Post < ActiveRecord::Base > hobo_model # Don't put anything above this > > fields do > title :string, :default => "" > body :string, :default => "" > timestamps > end > > belongs_to :user, :foreign_key => "user_code" > belongs_to :group, :foreign_key => "group_code" > end > > now, when I create a new post, assign the user => fine, assign a group > => save => group_code in post = 0 > > My conclusion is: models made without hobo work as expected, models > made using hobo give an issue. > > Another thing: changing the primary key, causes the hobo_migration to > suggest to drop group.id. When group.id is dropped, I can't create a > new group, the group code is not saved. > > -- > > You received this message because you are subscribed to the Google Groups > "Hobo Users" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/hobousers?hl=en. > > > -- You received this message because you are subscribed to the Google Groups "Hobo Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/hobousers?hl=en.
