Hi, I have good this cool challenge from my boss on developing a very simple cms-like system to publish articles within. The caveat is that he wants to have multi-lingual content. At first I thought RoR would be perfect for the assignment but right now I'm not so sure. My first attempt involved creating a table for each model/languagde like this: articles_en articles_dk articles_de etc but then I will dynamically need to change the used table per request. Seems like something that will slow down the app quite a bit. Then I thought I could create the primary key in the table like a joined key of the id field and language so I would have these ids: 1-en 1-de 2-en 2-dk etc But ActiveRecord doesn't support multiple columns as primary key. So right now I could some new idea or thought cause I'm sure RoR can do everything - it's only a matter on finding out how to do it :-) Greetings, Gitte W.
on 2006-01-04 15:28
on 2006-01-04 15:59
How about something like this... class Article < ActiveRecord::Base has_many :translations end class Translation < ActiveRecord::Base belongs_to :article validates_presence_of :language validates_presence_of :body validates_presence_of :title end tables... articles id INT(11) auto_increment, not null other non-language specific fields, like publish time, etc.. translations id INT(11) auto_increment, not null article_id language varchar(2) title varchar(80) body mediumtext Then you could do something like Articles.find_all_by_language('en') or @article = Articles.find_by_id_and_language(params[:id],'en')
on 2006-01-04 16:00
if necessary you could create a languages table and use a foreign key instead of storing the two letter language code.
on 2006-01-05 18:44
Gitte: On Jan 4, 2006, at 4:57 AM, Gitte W. wrote: > So right now I could some new idea or thought cause I'm sure RoR > can do everything - it's only a matter on finding out how to do it :-) Have a table for languages as follows: id articleId LanguageCode in your articles model have :belongs_to language and in your languages model have :has_many articles Cheers, Hasan D. <email@example.com>
on 2006-01-06 19:00
Kevin O. wrote: > validates_presence_of :body > id INT(11) auto_increment, not null > article_id > language varchar(2) > title varchar(80) > body mediumtext > > Then you could do something like > > Articles.find_all_by_language('en') > or > @article = Articles.find_by_id_and_language(params[:id],'en') Hi Kevin, Just wanted to say thanks for the idea - it works like a charm! Greetings, Gitte W.