我已经写了几年的Rails,attr_accessible :person
和attr_accessible :person_id
之间的差异真的困扰着我。
attr_accessible :person
使处理表单数据变得烦人,尤其是对于需要访问f.select :person_id...
的选定帮助程序
attr_accessible :person_id
:使设置AR查找器结果更加详细,例如User.person_id = Person.create!(name: "Hugh").id
我也不介意太多,但同时使用两者似乎是不必要的。我也从未真正在其他人的代码中看到过偏好。这里有我应该遵循的约定吗?
我所知,使用attr_accessible :person_id
是最佳做法。模型对象将自动转换为 id,因此您应该能够编写如下内容:User.first.person_id = Person.create!(name: "Hugh")
甚至更短:User.first.person.create!(name: "Hugh")