【问题标题】:Adding multiple objects to a user in rails在rails中向用户添加多个对象
【发布时间】:2015-02-17 20:03:58
【问题描述】:

我之前问过一个关于向用户表中添加多个对象的模糊问题。我从 heading_to_tahiti 得到了一个非常好的答案,但我在实施它时遇到了麻烦。

我的用户迁移已全部设置好。我希望能够制作一个表格,允许用户将药物添加到他们的帐户中。他建议使用脚手架制作药物模型和其他东西,并在用户模型中制作药物列。我尝试了这个并且它在正确的轨道上,但我对药物模型如何做任何事情以及药物列如何存储多种药物感到困惑。

我是 Rails 的新手,尤其是在做任何与服务器相关的事情时,因此将不胜感激。

我希望最终结果是这个门户网站显示所有用户的药物并允许他们对它们执行 CRUD 任务。我希望这不会影响深远,并且绝对没有义务回答整个问题,我知道这要求很多。

这是上一个问题How can I add additional columns to a Users table with rails and devise gem?

我的应用目前http://imgur.com/ZY456Tj

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby devise migration models


    【解决方案1】:

    你想要的是一对多的关系。一位用户可以服用多种药物。为您的药物创建一个模型,该模型具有一个名为 user_id 的字段。在medications.rb

    class Medication < ActiveRecord::Base
      belongs_to :user
    end
    

    users.rb:

    class User < ActiveRecord::Base
      has_many :medications
    end
    

    只要您的药物模型有一个名为 user_id 的字段,Rails 就足够聪明地知道,当您调用 myuser.medications 时,您需要所有 Medication 记录,其中 user_id = myuser.id。你可以read more here

    【讨论】:

    • 谢谢,我认为这行得通!直到明天我才能测试它,所以我会更新你。我没有足够的代表来支持 cmets,所以我只能接受答案,抱歉。
    • 好吧,我对 myuser.medications 部分感到困惑。我怎么能这么叫?我有一个用户表,那么“我的”部分来自哪里?
    • 它只是一个可以是任何用户的占位符。以myuser = User.find(1) 为例
    猜你喜欢
    • 2016-09-10
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    相关资源
    最近更新 更多