微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – Rails与没有模型的表关联

我想在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)并返回用户的数据?

如果这是一个新问题我提前道歉,我可以用PHP轻松完成所有这些,但我不知道如何在Rails上执行此操作.

解决方法

您当前的场景确实需要一个模型,但是当您需要存储类似数据的数据时,例如体育(足球,网球,板球,游泳,篮球等),您可以将它们作为常量存储在您的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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐