我已经写了几年Rails了,attr_accessible :person
和attr_accessible :person_id
之间的差异确实让我感到烦恼。
attr_accessible :person
让处理表单数据变得很烦人,尤其是需要访问f.select :person_id...
attr_accessible :person_id
:让它成为设置AR查找器结果的verboser,例如User.person_id = Person.create!(name: "Hugh").id
我不介意太多,但使用两者似乎应该是不必要的。我也没有真正看到其他人的代码偏好。我应该遵循一个约定吗?
答案 0 :(得分:3)
据我所知,使用attr_accessible :person_id
是最佳做法。模型对象将自动转换为id,因此您应该能够编写类似于User.first.person_id = Person.create!(name: "Hugh")
或更短的内容:User.first.person.create!(name: "Hugh")