我想在Rails中重写我的项目.它目前用
PHP(CodeIgniter)编写,我已经到了我正在编写更多库和核心扩展而不是编写新代码的地步.我一直在看一些Rails教程,我喜欢到目前为止看到的内容(尽管我觉得你对传递的内容的控制较少).然而,似乎没有模型的数据库表上有很少的信息(可能我没有找到正确的位置).
例如,我需要一个名为user_verification_token的表
CREATE TABLE IF NOT EXISTS `user_verification_token` ( `user_id` int(11) NOT NULL,`token` varchar(255) COLLATE utf8_unicode_ci NOT NULL,`is_used` tinyint(1) NOT NULL DEFAULT '0',PRIMARY KEY (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
我为此创建一个模型没有意义,对吧?
第一个问题:如何在没有任何模型的情况下生成迁移以单独创建表?
第二个问题:当此表填充数据时,如何与其关联.例如将它与用户模型(如果可能)/用户对象相关联,这样我就可以通过令牌找到用户(提供is_used = 0)并返回用户的数据?
解决方法
您当前的场景确实需要一个模型,但是当您需要存储类似数据的数据时,例如体育(足球,网球,板球,游泳,篮球等),您可以将它们作为常量存储在您的config-> initializers->常量中例如. SPORT_CATEGORIES = [[“足球”,“足球”],[“网球”,“网球”]等,或者如果你有更多的cols来存储你可以创建一个模型,然后像在PHP中创建默认行.sql文件,但在ruby当然:)例如:
sport_categories = [ {:category => "football",:category_type => "manly" },{:category => "Tennis",etc ] sport_categories.each do |attributes| Model_name_here.find_or_initialize_by_category(attributes[:category]).tap do |p| p.category_type = attributes[:category_type] p.save! end end
然后你运行rake db:seed.