如何使Rails关系可访问?

时间:2012-08-13 15:50:30

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

我已经写了几年Rails了,attr_accessible :personattr_accessible :person_id之间的差异确实让我感到烦恼。

attr_accessible :person让处理表单数据变得很烦人,尤其是需要访问f.select :person_id...

的精选帮助程序

attr_accessible :person_id:让它成为设置AR查找器结果的verboser,例如User.person_id = Person.create!(name: "Hugh").id

我不介意太多,但使用两者似乎应该是不必要的。我也没有真正看到其他人的代码偏好。我应该遵循一个约定吗?

1 个答案:

答案 0 :(得分:3)

据我所知,使用attr_accessible :person_id是最佳做法。模型对象将自动转换为id,因此您应该能够编写类似于User.first.person_id = Person.create!(name: "Hugh")或更短的内容:User.first.person.create!(name: "Hugh")