如何在没有CRUD的Rails中建模资源?你会如何使用Attributes API来做到这一点?

时间:2017-05-14 16:23:01

标签: ruby-on-rails model ruby-on-rails-5

我的具体用例是一系列行业。每个帐户都有一个行业。它只能有一个。我认为标准方法是添加表,添加模型,并在industry_id表上使用外键accounts

但由于行业不是CRUD资源,我想使用Attributes API。我尝试使用IndustryType,遵循Rails文档,但这不会给我一个id?如何将attribute :industry与数据库中的industry_id列结合使用?

我刚刚发现API有点令人困惑,感谢任何帮助更好地理解它。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么您尝试做的就是在帐户和行业之间建立关联。首先,生成您的行业模型:

rails g model Industry

然后生成您的帐户模型:

rails g model Account industry:references

industry:references会在帐户表中为您提供industry_id列。您可以致电account.industry来获取该帐户的行业,但不能industry.account。如果您希望能够致电industry.account并获取该行业的帐户,则必须运行其他迁移才能将account_id添加到行业表中:

rails g migration add_account_id_to_industry account:references

这会将account_id列添加到您的表中。现在,您也可以致电industry.account并获取该行业的帐户。

其中任何一个都不会为您提供CRUD功能。他们只会创建模型和表格。