Ruby on rails 设置Rails模型和关联
我有一个公司表和一个状态代码表 一个公司只能有一个状态代码Ruby on rails 设置Rails模型和关联,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,我有一个公司表和一个状态代码表 一个公司只能有一个状态代码 COMPANIES id int PK name varchar status_code_id int FK STATUS_CODES id PK name varchar (Live, Inactive, Deleted) 我正试图用以下模型/关联在rails中设置此功能 class Company < ActiveRecord::Base has_one :status_code end class
COMPANIES
id int PK
name varchar
status_code_id int FK
STATUS_CODES
id PK
name varchar (Live, Inactive, Deleted)
我正试图用以下模型/关联在rails中设置此功能
class Company < ActiveRecord::Base
has_one :status_code
end
class StatusCode < ActiveRecord::Base
belongs_to :company
end
class公司
问题发生在所属的\u:company
,它需要状态\u code
表中的外键company\u id
我基本上希望所有状态代码都在一个表中,所以如果我需要更改状态代码名称,我只更改一次,所有公司都会显示新更新的状态代码名称
我可以用我的数据库表布局设置rails吗?或者有更好的方法吗?我相信在这种情况下,您需要StatusCode拥有许多公司。这样,一旦您更改状态代码,所有公司都会显示新更新的状态代码名称
class Company < ActiveRecord::Base
belongs_to :status_code
end
class StatusCode < ActiveRecord::Base
has_many :companies
end
class公司
当然,在companys表中需要status\u code\u id外键。一般的经验法则是,包含外键的关联方应该有
属于:other\u model
,反之应该有has\u many
谢谢,rails是如何做到这一点的?状态代码有很多:公司一开始可能读得不正确,但如果你从面向对象的角度来考虑,它并没有什么问题,你只是为你想要实现的目标编写代码。这也不违背“rails方式”,因为它是一个简单的有很多关联的方法。